Spring Boot 3.5.x · 基于 Spring Framework 6.2 · JDK 17+(推荐 21)

上一页你刚学完 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.017+(推荐 21)6.2.x+下一代大版本;具体已发布版本与新特性以官网最新稳定版为准。
3.5.x17+(推荐 21)6.2.x本教程基线,当前稳定版,新项目首选。
3.4.x / 3.3.x17+6.1.x上一代稳定线,仍有大量项目在用,安全补丁照常。
2.7.x8+5.3.x上一代 javax 线的最后一版,存量项目极多;javax.* 包名。
Boot 3.x 的三条硬红线 + 2→3 迁移清单

① 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 BootSpring FrameworkJDK内嵌 Tomcat / 命名空间
3.5.x6.2.x17+(推荐 21)Tomcat 10.1 / jakarta.*
3.3.x – 3.4.x6.1.x17+Tomcat 10.1 / jakarta.*
3.0.x – 3.2.x6.0.x – 6.1.x17+Tomcat 10.1 / jakarta.*
2.7.x5.3.x8+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 的配置项。

1
第 1 节 · Spring Boot 是什么:约定优于配置
What Is Spring Boot

用传统 Spring 开发一个 Web 项目,你要自己配 DispatcherServlet、视图解析器、视图解析器、数

进入本节 →
2
第 2 节 · 快速开始:5 分钟起一个 Web 服务
Quick Start

去 start.spring.io(Spring Initializr)选一下 Maven、Java 21、Spring

进入本节 →
3
第 3 节 · 自动配置原理:@SpringBootApplicat
Auto-Configuration Magic

为什么加个 spring-boot-starter-web,Tomcat 就自动起来了?为什么连数据库都不配就能连 H2

进入本节 →
4
第 4 节 · 起步依赖 Starters:版本仲裁的魔法
Starters & Dependency Management

以前用 Spring,你得自己查:Spring 5.3 配哪个版本的 Hibernate?Jackson 哪个版本兼容?

进入本节 →
5
第 5 节 · Web 开发:Controller、参数绑定、全局异
Spring Web MVC

Spring Boot 的 Web 层就是 Spring MVC。你写一个 @RestController,方法上贴 @

进入本节 →
6
第 6 节 · 数据访问:JPA、MyBatis 与连接池
Data Access

Spring Boot 默认用 HikariCP 连接池(速度最快的 Java 连接池)。数据访问层有两条主流路线:Sp

进入本节 →
7
第 7 节 · 配置管理:application.yml 与多环境
Externalized Configuration

Spring Boot 配置外置:代码里不写死参数,全部放到配置文件。开发、测试、生产各一套 profile,启动时指定

进入本节 →
8
第 8 节 · 日志:Logback 与 SLF4J
Logging

Spring Boot 默认用 SLF4J(门面)+ Logback(实现)。你不用选日志框架,开箱即用。记住一个原则:

进入本节 →
9
第 9 节 · 测试:切片测试与 MockMvc
Testing

Spring Boot 测试最大的好处是切片测试:测 Controller 就只起 Web 层,连数据库都不碰;测 Re

进入本节 →
10
第 10 节 · Actuator:应用的体检面板
Actuator & Monitoring

应用上线后,你怎么知道它活着?内存吃了多少?配置加载了哪些?Actuator 内置了一组 HTTP 端点,暴露这些运行时

进入本节 →
11
第 11 节 · 打包与部署:Jar、Docker、War
Packaging & Deployment

Spring Boot 推荐打可执行 Jar——内嵌 Tomcat,java -jar 直接跑。云原生时代,再把 Jar

进入本节 →
12
第 12 节 · Spring Security 入门:登录与放行
Spring Security · Filter Chain · JWT

Web 应用谁都能访问?接口裸奔?引入 spring-boot-starter-security 后,默认所有接口都要登

进入本节 →
13
第 13 节 · 小项目:任务管理 API
Mini Project: Task Manager API

把 Web 层、JPA、校验、全局异常、分页全部串起来,做一个完整的任务管理后端。技术栈:Spring Boot 3.5

进入本节 →
14
第 14 节 · 常见坑与最佳实践
Common Pitfalls

Common Pitfalls

进入本节 →
15
第 15 节 · Spring Boot 3 安全与 OAuth2:把
Spring Boot 3 Security · OAuth2 Resource

第 12 章(ch11sec)我们用一个内存用户跑通了登录与放行。真实项目里,认证往往由统一的 SSO 负责,你的服务只

进入本节 →
16
第 16 节 · Boot 缓存与 WebSocket:把重复计算省掉
Boot Cache · WebSocket Starter

这一章讲两件"性价比很高"的事:缓存让重复查询不再重复算,WebSocket 让服务端能主动把变化告诉客户端。它们在 S

进入本节 →
17
第 17 节 · 生产可观测与 API 文档:让服务"看得见、说得清"
Actuator · Micrometer · springdoc

本地跑通不等于能上线。上线之后你会立刻面对三个问题:它现在还活着吗?它慢在哪里?别人怎么知道它有哪些接口?这一章就是把这

进入本节 →