Spring和SpringBoot和SpringMVC 的关系总结
Spring和SpringBoot和SpringMVC 的关系总结

简单说:
单独用 Spring,能管理对象但没法接 Web 请求;
加 SpringMVC,Spring 就能处理 Web 请求了;
再加 SpringBoot,不用自己配任何东西,直接一键启动整个系统。
三者的包含 / 整合关系
SpringMVC 是 Spring 的 “子集”(SpringMVC 是 Spring 框架的核心子模块,属于 Spring 本身);
SpringBoot 不是 “包含” Spring/SpringMVC,而是 “整合封装” 了 Spring + SpringMVC + 常用组件(比如内嵌 Tomcat、依赖管理),是 “打包好的 Spring 全家桶”。
拆解说明(用「电脑系统」类比)

更精准的技术层面解释
SpringMVC → 属于 Spring(源码级包含)Spring 框架本身是一个 “大生态”,包含多个核心模块:
核心容器(IOC/DI,管理对象)、AOP(面向切面)、事务管理;
SpringMVC 是其中专门处理「Web 请求」的模块(属于 Spring Web 模块);
简单说:SpringMVC 是 Spring 的 “一个功能插件”,必须依赖 Spring 才能运行。
SpringBoot → 整合 Spring + SpringMVC(依赖级封装)SpringBoot 本身没有新的核心功能,它只是做了两件事:
把 Spring 核心、SpringMVC、内嵌 Tomcat、常用依赖(比如数据库驱动)等 “打包成 Starter 依赖”,你引入一个 spring-boot-starter-web,就自动包含了 Spring + SpringMVC + Tomcat;
做了 “自动配置”,不用写 XML,直接一键启动 —— 本质是 “简化版的 Spring 开发包”,而非 “新增的子框架”。
可视化层级(从上到下)

易错点
不要误以为 “SpringBoot 是 Spring 的父框架”—— 恰恰相反:
SpringBoot 依赖 Spring 和 SpringMVC 的源码;
Spring 和 SpringMVC 可以脱离 SpringBoot 单独使用(比如传统 SpringMVC 项目);SpringBoot 不能脱离 Spring/SpringMVC 运行(它的核心能力都是基于 Spring 的)。
SpringMVC 是 Spring 的 “一部分,” (SpringMVC是 Spring 大生态中的核心子模块(归属 Spring Web 模块))
扫一扫,关注我们