Spring、SpringMVC、SpringBoot三者的区别

目录

Spring是什么?

SpringMVC是什么?

SpringBoot是什么?

Spring、SpringMVC、SpringBoot三者之间的关系


Spring是什么?

Spring是一个开源的应用程序框架,它提供了一种简易的开发方式,通过依赖注入和面向切面编程,可以实现高内聚低耦合的应用程序。Spring还提供了多个模块,如Spring AOP,Spring JDBC,Spring MVC,Spring ORM,Spring JMS,Spring Test等,可以与各种第三方框架进行整合。

SpringMVC是什么?

SpringMVC是Spring框架的一个模块,专门用于构建Web应用程序。它实现了MVC模式,将应用程序分为三个层次:模型(Model),视图(View)和控制器(Controller)。模型是应用程序的数据层,负责封装业务逻辑和数据访问。视图是应用程序的展示层,负责渲染用户界面。控制器是应用程序的控制层,负责处理用户请求和调用模型和视图。

SpringMVC使用前端控制器模式,通过一个名为DispatcherServlet的核心组件来统一管理所有的请求。DispatcherServlet负责将请求分发给相应的控制器,并将控制器返回的模型和视图名称解析为具体的视图对象,最终将视图渲染给用户。

SpringBoot是什么?

SpringBoot是一个基于Spring框架的微服务框架,它可以快速地创建和运行独立的、生产级的应用程序。它具有以下特点:

  • 自动配置:根据类路径上的依赖包,自动配置合适的组件和属性,无需过多的配置文件。
  • 起步依赖:提供了一系列的Starter模块,可以轻松地引入常用的依赖包,并管理其版本和兼容性。
  • 嵌入式容器:支持内嵌Tomcat、Jetty、Undertow等Web容器,可以直接运行jar包而无需部署war包。
  • 健康检查和度量:提供了Actuator模块,可以监控和管理应用程序的运行状况和性能指标。
  • 外部化配置:支持多种方式来配置应用程序的属性,如properties文件、yaml文件、环境变量、命令行参数等,并支持动态刷新。

Spring、SpringMVC、SpringBoot三者之间的关系

从上面的介绍可以看出,Spring、SpringMVC、SpringBoot三者之间有着密切的联系:

  • SpringMVC是基于Spring框架的一个Web开发模块,它使用了Spring框架提供的依赖注入、事务管理、AOP等特性,并且可以与其他Spring模块进行整合。
  • SpringBoot是基于Spring框架的一个微服务框架,它使用了SpringMVC作为Web开发组件,并且可以引入其他Spring模块作为起步依赖。它还提供了自动配置、嵌入式容器、健康检查等功能,简化了应用程序的开发和部署。

因此,可以说SpringBoot > SpringMVC > Spring ,即SpringBoot包含了SpringMVC,而SpringMVC又包含了Spring。但这并不意味着使用了SpringBoot就不需要了解或使用Spring或者SpringMVC了。相反,在使用SpringBoot时,还需要了解Spring和SpringMVC的基本原理和配置方式,以便在需要时进行自定义和调优。

相关推荐
四谎真好看5 分钟前
Java 学习笔记(进阶篇2)
java·笔记·学习
上官浩仁18 分钟前
springboot ioc 控制反转入门与实战
java·spring boot·spring
deepwater_zone20 分钟前
Spring 微服务
spring·微服务
叫我阿柒啊1 小时前
从Java全栈到前端框架:一位程序员的实战之路
java·spring boot·微服务·消息队列·vue3·前端开发·后端开发
mqiqe1 小时前
架构-亿级流量性能调优实践
java·架构
中国胖子风清扬1 小时前
Rust 序列化技术全解析:从基础到实战
开发语言·c++·spring boot·vscode·后端·中间件·rust
野犬寒鸦2 小时前
力扣hot100:旋转图像(48)(详细图解以及核心思路剖析)
java·数据结构·后端·算法·leetcode
七夜zippoe2 小时前
AI+Java 守护你的钱袋子!金融领域的智能风控与极速交易
java·人工智能·金融
岁忧2 小时前
(LeetCode 面试经典 150 题) 200. 岛屿数量(深度优先搜索dfs || 广度优先搜索bfs)
java·c++·leetcode·面试·go·深度优先
liliangcsdn3 小时前
结合prompt分析NodeRAG的build过程
java·服务器·人工智能·数据分析·知识图谱