第 41 章:Spring 全家桶生态总览
学习目标
- 理解 Spring、SpringBoot、Spring Cloud 的关系
- 掌握 Spring 生态的全景图,知道每个组件在做什么
- 明确企业项目为什么选择 SpringBoot
一、为什么 Spring 是 Java 后端的"事实标准"?
如果说 Java 是企业级开发的"通用语言",那 Spring 就是企业级 Java 的"事实标准"。
为什么是 Spring?
| 维度 | Spring 的优势 |
|---|---|
| 生态完整 | 90% 的企业场景有现成组件 |
| 约定优于配置 | 写最少代码,做最多事 |
| 活跃社区 | 30+ 年持续维护,Stack Overflow 答案最丰富 |
| 企业背书 | 阿里、腾讯、美团、Netflix 等大厂的核心选择 |
| 招聘友好 | 掌握 Spring 等于掌握 Java 后端主流技能 |
二、Spring 家族族谱
三个核心框架的关系
| 框架 | 定位 | 解决的问题 | 一句话总结 |
|---|---|---|---|
| Spring Framework | 核心框架 | IoC、AOP、MVC、事务等基础能力 | Java 后端的"地基" |
| Spring Boot | 快速开发脚手架 | 简化配置、内嵌服务器、约定优于配置 | 让 Spring 用起来更简单 |
| Spring Cloud | 微服务套件 | 分布式系统的常见问题(网关、配置、熔断) | 微服务架构的"全家桶" |
你可以这样类比
- Spring Framework = 毛坯房(有了基本结构,但还需要装修)
- Spring Boot = 精装修(拎包入住,约定优于配置)
- Spring Cloud = 智慧小区(多个房子协同,公共服务齐全)
本教程只讲 Spring Boot,因为它是 90% Java 项目的标准起点。Spring Cloud 是进阶内容,会在后续批次涉及。
三、SpringBoot 核心特性
3.1 Starter 依赖:开箱即用
Spring Boot Starter 是预打包的依赖集合,一行依赖搞定一个完整功能。
xml
<!-- 一个依赖 = Web 完整功能(Tomcat + Spring MVC + Jackson + 验证器...) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 一个依赖 = 数据访问完整功能(Hibernate + HikariCP + Spring Transaction) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- 一个依赖 = 安全完整功能(Spring Security + 过滤器链 + BCrypt) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>没有 SpringBoot 之前,你需要在 pom.xml 写十几行依赖,还经常因为版本冲突熬夜。有了 Starter,一行搞定。
3.2 自动配置:智能推测
传统 Spring 项目需要写大量 XML 配置:
xml
<!-- 传统 Spring MVC 配置 -->
<beans>
<bean class="org.springframework.web.servlet.DispatcherServlet">
<property name="..." />
</bean>
<mvc:annotation-driven />
<context:component-scan base-package="com.example" />
<!-- 还有数据源、事务管理器、视图解析器... -->
</beans>SpringBoot 通过 @EnableAutoConfiguration 智能推测你需要什么配置:
3.3 内嵌服务器:Jar 直接运行
传统 Java Web 应用:
SpringBoot 应用:
bash
# 一个命令启动
$ java -jar my-app.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.2.0)
2026-08-12 10:30:45.123 INFO 12345 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080
2026-08-12 10:30:45.456 INFO 12345 --- [ main] com.taskflow.Application : Started Application in 2.345 seconds3.4 Actuator:生产级监控
SpringBoot 内置的生产监控端点:
| 端点 | 用途 | 示例 |
|---|---|---|
/actuator/health | 应用健康状态 | 数据库连接、磁盘空间 |
/actuator/info | 应用基本信息 | 版本号、Git commit |
/actuator/metrics | 性能指标 | 内存使用、线程数 |
/actuator/env | 环境变量 | 配置信息(生产环境要关闭) |
/actuator/loggers | 日志级别 | 动态调整日志级别 |
/actuator/prometheus | Prometheus 格式指标 | 对接监控系统 |
四、SpringBoot 适合做什么?
不适合的场景:
- ❌ 极端性能要求(高频交易、游戏服务器)→ 考虑 Go / Rust / C++
- ❌ 前端 UI 渲染 → 用 Vue / React
- ❌ 数据科学 / AI 训练 → Python 生态更适合
五、版本选择
本教程统一使用:
| 组件 | 版本 |
|---|---|
| JDK | 17 LTS |
| SpringBoot | 3.2.x(最新稳定版) |
| Spring | 6.1.x |
| Maven | 3.9.x |
| IntelliJ IDEA | 2024.x |
为什么不用最新的 3.3.x?
- 3.2.x 是当前企业主流,生态兼容性最好
- 3.3.x 一些第三方库可能还未适配
- 本教程的代码示例完全兼容 3.2.x 和 3.3.x
六、SpringBoot 生态全景图
本教程覆盖的组件:
- ✅ Spring MVC(Web 层)
- ✅ MyBatisPlus(数据层)
- ✅ Spring Data Redis(缓存)
- ✅ Spring AMQP(RabbitMQ)
- ✅ Spring Security(安全)
- ✅ Spring Boot Actuator(监控)
- ✅ Spring Cloud Gateway(网关)
本教程未覆盖(后续批次):
- ⏳ Spring Cloud 微服务全套
- ⏳ Spring WebFlux 响应式
- ⏳ Spring GraphQL
- ⏳ Spring Native GraalVM
七、企业项目典型技术栈
一个完整的企业项目包含:
| 层 | 技术 | 章节 |
|---|---|---|
| 前端 | Vue 3 / React / NestJS | 第二批 |
| Web 层 | Spring MVC + SpringBoot | 第 41-46 章 |
| 业务层 | Spring Service + 事务 | 第 47-58 章 |
| 数据层 | MyBatisPlus + HikariCP | 第 53-58 章 |
| 缓存 | Redis + Spring Cache | 第 60-61 章 |
| 消息队列 | RabbitMQ / Kafka | 第 62-63 章 |
| 安全 | Spring Security + JWT | 第 64-66 章 |
| 监控 | Actuator + Prometheus | 第 73-74 章 |
| 部署 | Docker + K8s | 第 78-90 章 |
八、本章小结
| 要点 | 关键 |
|---|---|
| Spring 的地位 | Java 后端事实标准,市场占有率 80%+ |
| 三层关系 | Spring Framework(核心) → Spring Boot(快速开发) → Spring Cloud(微服务) |
| SpringBoot 核心特性 | Starter 依赖、自动配置、内嵌服务器、Actuator 监控 |
| 版本选择 | SpringBoot 3.2.x + JDK 17(当前企业主流) |
| 适合场景 | 90% 的企业 Java 后端项目 |
| 不适合场景 | 极端性能、前端 UI、数据科学 |
动手练习
- 调研题:访问 Spring 官网,看看 Spring Boot 当前最新版本和 LTS 策略
- 思考题:你的目标岗位需要 Spring 哪些技能?去招聘网站搜索 "SpringBoot 高级工程师" 看 10 个 JD
- 安装题:安装 IntelliJ IDEA(已有则跳过),安装 SpringBoot 助手插件
Spring Boot Helper
推荐阅读
- 📖 《Spring 实战》第 6 版 — Spring 经典教材
- 📖 《SpringBoot 实战》第 4 版 — SpringBoot 入门经典
- 🌐 Spring 官方文档 — 最新权威文档
- 🌐 SpringBoot GitHub — 源码与示例
下一章:第 42 章:IoC 控制反转 →
你已经完成了:
- ✅ 理解 Spring、SpringBoot、Spring Cloud 的关系
- ✅ 掌握 SpringBoot 核心特性
- ✅ 明确本教程的技术选型(SpringBoot 3.2 + JDK 17)
- ✅ 了解完整企业项目的技术栈全景