上一页你刚学完 Spring 核心,知道 IoC、AOP、事务都是怎么回事。Spring Boot 干的事就一句话:把这些底层玩意儿全部自动配置掉,让你 5 分钟起一个能跑的 Web 服务。它不是新框架,是 Spring 的"精装修"——你拿到手就能住,不用再自己刷墙铺地。
版最新版本与兼容性:Boot 3.x 和 2.7 的那道坎
Spring Boot 现在也是"双轨":3.x 是现役主力,2.7.x 是存量维护版。最大的坎不是版本号,而是 javax → jakarta 的命名空间切换——Boot 2.7 还能用 javax,Boot 3.0 起一刀切到 jakarta。跳槽进老项目先看 pom 里是 2.x 还是 3.x,写出来的代码天差地别。
| 版本线 | JDK 基线 | 底层 Framework | 现状 |
|---|---|---|---|
| 4.0 | 17+(推荐 21) | 6.2.x+ | 下一代大版本;具体已发布版本与新特性以官网最新稳定版为准。 |
| 3.5.x | 17+(推荐 21) | 6.2.x | 本教程基线,当前稳定版,新项目首选。 |
| 3.4.x / 3.3.x | 17+ | 6.1.x | 上一代稳定线,仍有大量项目在用,安全补丁照常。 |
| 2.7.x | 8+ | 5.3.x | 上一代 javax 线的最后一版,存量项目极多;javax.* 包名。 |
① JDK 17 起步:Boot 3.x 直接放弃 JDK 8/11。
② javax → jakarta:javax.servlet / javax.persistence / javax.validation 全部改名 jakarta.*,这是机械工作量最大的一步。
③ 配置属性改名 + 移除依赖:老版本一些 spring.* 配置项改了名、几个老 starter 被移除(如 ribbon、hystrix),升级前先看官方迁移指南。
兼容矩阵:Boot ↔ Framework ↔ JDK ↔ 内嵌 Tomcat
| Spring Boot | Spring Framework | JDK | 内嵌 Tomcat / 命名空间 |
|---|---|---|---|
| 3.5.x | 6.2.x | 17+(推荐 21) | Tomcat 10.1 / jakarta.* |
| 3.3.x – 3.4.x | 6.1.x | 17+ | Tomcat 10.1 / jakarta.* |
| 3.0.x – 3.2.x | 6.0.x – 6.1.x | 17+ | Tomcat 10.1 / jakarta.* |
| 2.7.x | 5.3.x | 8+ | Tomcat 9.0 / javax.* |
一句话记住:Tomcat 10 是个分水岭——Tomcat 9 用 javax,Tomcat 10 用 jakarta。Spring Boot 2.7 内嵌 Tomcat 9,Boot 3.x 内嵌 Tomcat 10.1,包名就是跟着 Tomcat 走的。别在 Boot 3 里还找 Tomcat 9 的配置项。
- Spring Boot 是什么:约定优于配置
- 快速开始:从 Spring Initializr 到第一个接口
- 自动配置原理:@SpringBootApplication 拆解
- 起步依赖 Starters:版本仲裁的魔法
- Web 开发:Controller、参数绑定、全局异常
- 数据访问:JPA、MyBatis 与连接池
- 配置管理:application.yml 与多环境
- 日志:Logback 与 SLF4J
- 测试:切片测试与 MockMvc
- Actuator:应用的体检面板
- 打包与部署:Jar、Docker、War
- Spring Security 入门:登录与放行
- 小项目:任务管理 API
- 常见坑:版本、循环依赖、热部署
- Spring Boot 3 安全与 OAuth2:把服务改造成资源服务器
- Boot 缓存与 WebSocket:把重复计算省掉,把变化推出去
- 生产可观测与 API 文档:让服务"看得见、说得清"
第 1 节 · Spring Boot 是什么:约定优于配置
用传统 Spring 开发一个 Web 项目,你要自己配 DispatcherServlet、视图解析器、视图解析器、数
第 2 节 · 快速开始:5 分钟起一个 Web 服务
去 start.spring.io(Spring Initializr)选一下 Maven、Java 21、Spring
第 3 节 · 自动配置原理:@SpringBootApplicat
为什么加个 spring-boot-starter-web,Tomcat 就自动起来了?为什么连数据库都不配就能连 H2
第 4 节 · 起步依赖 Starters:版本仲裁的魔法
以前用 Spring,你得自己查:Spring 5.3 配哪个版本的 Hibernate?Jackson 哪个版本兼容?
第 5 节 · Web 开发:Controller、参数绑定、全局异
Spring Boot 的 Web 层就是 Spring MVC。你写一个 @RestController,方法上贴 @
第 6 节 · 数据访问:JPA、MyBatis 与连接池
Spring Boot 默认用 HikariCP 连接池(速度最快的 Java 连接池)。数据访问层有两条主流路线:Sp
第 7 节 · 配置管理:application.yml 与多环境
Spring Boot 配置外置:代码里不写死参数,全部放到配置文件。开发、测试、生产各一套 profile,启动时指定
第 8 节 · 日志:Logback 与 SLF4J
Spring Boot 默认用 SLF4J(门面)+ Logback(实现)。你不用选日志框架,开箱即用。记住一个原则:
第 9 节 · 测试:切片测试与 MockMvc
Spring Boot 测试最大的好处是切片测试:测 Controller 就只起 Web 层,连数据库都不碰;测 Re
第 10 节 · Actuator:应用的体检面板
应用上线后,你怎么知道它活着?内存吃了多少?配置加载了哪些?Actuator 内置了一组 HTTP 端点,暴露这些运行时
第 11 节 · 打包与部署:Jar、Docker、War
Spring Boot 推荐打可执行 Jar——内嵌 Tomcat,java -jar 直接跑。云原生时代,再把 Jar
第 12 节 · Spring Security 入门:登录与放行
Web 应用谁都能访问?接口裸奔?引入 spring-boot-starter-security 后,默认所有接口都要登
第 13 节 · 小项目:任务管理 API
把 Web 层、JPA、校验、全局异常、分页全部串起来,做一个完整的任务管理后端。技术栈:Spring Boot 3.5
第 14 节 · 常见坑与最佳实践
Common Pitfalls
第 15 节 · Spring Boot 3 安全与 OAuth2:把
第 12 章(ch11sec)我们用一个内存用户跑通了登录与放行。真实项目里,认证往往由统一的 SSO 负责,你的服务只
第 16 节 · Boot 缓存与 WebSocket:把重复计算省掉
这一章讲两件"性价比很高"的事:缓存让重复查询不再重复算,WebSocket 让服务端能主动把变化告诉客户端。它们在 S
第 17 节 · 生产可观测与 API 文档:让服务"看得见、说得清"
本地跑通不等于能上线。上线之后你会立刻面对三个问题:它现在还活着吗?它慢在哪里?别人怎么知道它有哪些接口?这一章就是把这