Spring 全家桶各框架区分
层级关系一句话:Spring Framework 是底层基石;Spring Boot 是脚手架;Spring Cloud 是微服务工具集;其余是各个领域的扩展项目
1. Spring Framework(Spring 核心框架,地基)
✅ 整个 Spring 生态的底层基础,IOC、DI、AOP、事务、Spring MVC 都属于它内部的模块
- 核心模块:
- Core 容器模块:IOC 容器、Bean 管理、BeanDefinition
- AOP 模块:动态代理、切面能力
- Spring MVC 模块:web 模块,处理 http 请求(DispatcherServlet)
- 事务模块:@Transactional 事务底层实现
- JDBC 模块:数据库基础操作
- 缺点:原生使用需要大量 XML / 注解手动配置,需要外置 Tomcat
你前面学的 BeanDefinition、单例池、AOP 动态代理,全部来自 Spring Framework
❗区分:Spring MVC 是Spring Framework 里面的一个 web 模块,不是独立框架
2. Spring Boot(脚手架,基于 Spring Framework)
是对 Spring Framework 做封装、自动配置 核心能力:
- Starter 启动器:整合一堆依赖,不用手动管理版本
- 自动配置 AutoConfiguration:根据引入的 jar 包自动装配 Bean
- 内置 Tomcat/Jetty,打包成 jar 直接运行,不用部署外部服务器
- Actuator:应用健康检查、监控端点
关系:Spring Boot 底层完全依赖 Spring Framework;现在绝大多数项目都是 SpringBoot
3. Spring Cloud(微服务工具套件,基于 SpringBoot)
不是一个框架,一堆微服务组件的集合,必须跑在 SpringBoot 项目上 解决分布式、微服务场景问题:
- 服务注册发现(Nacos/Eureka)
- 远程调用 OpenFeign
- 网关 Spring Cloud Gateway
- 负载均衡 LoadBalancer
- 熔断降级(Sentinel/CircuitBreaker)
- 分布式配置中心 Config/Nacos 一句话:SpringBoot 开发单个微服务;SpringCloud 管理多个微服务之间的协作
4. Spring Data(数据访问层框架,基于 Spring Framework/SpringBoot)
统一操作数据库的抽象,简化数据库 CRUD 代码
- Spring Data JPA:关系型数据库
- Spring Data Redis:操作 Redis
- Spring Data Mongo:MongoDB 特点:写接口,不用写基础 SQL,自动生成实现;底层封装 JPA/MyBatis 等
5. Spring Security(安全框架)
认证(登录)、授权(权限)、防 CSRF、密码加密
负责登录校验、接口权限控制,保护 Spring 应用
6. Spring AI(AI 集成框架,新项目)
把大模型接入 Java 项目,统一封装各类大模型 API,在 Spring 体系中调用 AI 能力
7. Spring Batch(批处理框架)
大量离线数据批量处理,定时大批量读写数据(日志、报表、数据迁移)
极简层级关系
Spring Framework(地基:IOC/AOP/MVC/事务)
└── Spring Boot(脚手架:自动配置、starter、内置web容器,简化开发)
├── Spring Cloud(微服务治理套件,多个服务之间协作)
├── Spring Data(数据库简化操作)
├── Spring Security(登录权限安全)
├── Spring Batch(大数据批处理)
└── Spring AI(大模型集成)
表格
| 框架 | 定位 | 一句话 |
|---|---|---|
| Spring Framework | 底层核心框架 | 提供 IOC、AOP、MVC、事务基础能力 |
| Spring Boot | 脚手架 | 简化 Spring 开发,自动配置,内置服务器 |
| Spring Cloud | 微服务套件 | 多个微服务之间:注册、调用、网关、熔断 |
| Spring MVC | Framework 内 web 模块 | 处理 http 请求,接收前端接口 |
| Spring Data | 数据访问 | 简化数据库 CRUD |
| Spring Security | 安全 | 认证、权限控制 |
注意点
- Spring MVC≠SpringBoot:SpringMVC 属于 Spring Framework;SpringBoot 只是默认自动装配 MVC
- Spring Cloud 依赖 SpringBoot,不能脱离 SpringBoot 单独使用
- SpringBoot 不能替代 Spring Framework,Boot 只是封装,底层还是 Framework 的 IOC、AOP
总结
【Spring生态区分】
Spring Framework:底层核心框架,内置IOC、AOP、事务、Spring MVC模块,是所有Spring项目的基石。
Spring MVC:属于Spring Framework内部web模块,处理HTTP请求。
Spring Boot:基于Spring Framework的脚手架,自动配置、starter依赖、内置web容器,简化项目搭建。
Spring Cloud:基于SpringBoot的微服务工具集合,解决分布式服务注册、调用、网关、熔断等治理问题。
Spring Data:简化数据库操作,统一各类数据库访问抽象。
Spring Security:安全框架,负责认证、授权。
Spring Batch:批量离线数据处理;Spring AI:AI大模型集成。
层级:Spring Framework → Spring Boot → Spring Cloud(微服务多服务治理)