Spring和SpringBoot和SpringMVC 的关系总结

Spring和SpringBoot和SpringMVC 的关系总结

工具 角色 依赖关系
Spring 基础管理系统 独立存在,但通常和其他工具配合用
SpringMVC Web 请求处理子系统 依赖 Spring,是 Spring 的 Web 模块
SpringBoot 快捷启动包 包含 Spring+SpringMVC + 其他工具,一键启动

简单说:

单独用 Spring,能管理对象但没法接 Web 请求;

加 SpringMVC,Spring 就能处理 Web 请求了;

再加 SpringBoot,不用自己配任何东西,直接一键启动整个系统。

三者的包含 / 整合关系

SpringMVC是 Spring 的 "子集"(SpringMVC 是 Spring 框架的核心子模块,属于 Spring 本身);

SpringBoot 不是 "包含" Spring/SpringMVC,而是 "整合封装" 了 Spring + SpringMVC + 常用组件(比如内嵌 Tomcat、依赖管理),是 "打包好的 Spring 全家桶"。

拆解说明(用「电脑系统」类比)

组件 类比 包含 / 整合关系
Spring 电脑的「Windows 系统内核」 基础核心,是所有功能的底层支撑
SpringMVC Windows 系统里的「浏览器模块」 属于 Windows 内核的 "专用功能模块",只能跑在 Windows 上,专门处理 "网页访问" 需求
SpringBoot Windows 系统的「预装办公套件的品牌机」 不是 Windows 内核的一部分,但它预装了 Windows 内核 + 浏览器 + 办公软件 + 一键开机,不用自己手动装组件、配设置

更精准的技术层面解释

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(整合层)
├─ 内置:SpringMVC(Web 模块)
├─ 内置:Spring 核心(IOC/AOP/事务)
├─ 内置:Tomcat、依赖管理、自动配置等
└─ 对外提供"一键启动"能力

易错点

不要误以为 "SpringBoot 是 Spring 的父框架"------ 恰恰相反:

SpringBoot 依赖 Spring 和 SpringMVC 的源码;

Spring 和 SpringMVC 可以脱离 SpringBoot 单独使用(比如传统 SpringMVC 项目);SpringBoot 不能脱离 Spring/SpringMVC 运行(它的核心能力都是基于 Spring 的)。

SpringMVC 是 Spring 的 "一部分," (SpringMVC是 Spring 大生态中的核心子模块(归属 Spring Web 模块))

相关推荐
二哈赛车手4 小时前
新人笔记---ApiFox的一些常见使用出错
java·笔记·spring
栗子~~4 小时前
JAVA - 二层缓存设计(本地缓冲+redis缓冲+广播所有本地缓冲失效) demo
java·redis·缓存
YDS8294 小时前
DeepSeek RAG&MCP + Agent智能体项目 —— RAG知识库的搭建和接口实现
java·ai·springboot·agent·rag·deepseek
未若君雅裁6 小时前
MyBatis 一级缓存、二级缓存与清理机制
java·缓存·mybatis
AI人工智能+电脑小能手6 小时前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
阿维的博客日记7 小时前
Nacos 为什么能让配置动态生效?(涉及 @RefreshScope 注解)
java·spring
雨辰AI7 小时前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
辰海Coding8 小时前
MiniSpring框架学习-完成的 IoC 容器
java·spring boot·学习·架构
小小编程路8 小时前
C++ 多线程与并发
java·jvm·c++
AI视觉网奇8 小时前
linux 检索库 判断库是否支持
java·linux·服务器