🍂 枫言枫语 :我是予枫,一名行走在 Java 后端与多模态 AI 交叉路口的研二学生。
"予一人以深耕,观万木之成枫。"
在这里,我记录从底层源码到算法前沿的每一次思考。希望能与你一起,在逻辑的丛林中寻找技术的微光。
了解 Spring Security 的版本对应关系非常重要,因为它是典型的"版本代差大"的框架。如果版本选错,你搜到的教程代码可能根本无法编译。

根据最新的发布情况(截至 2026 年初),以下是 Spring Boot 与 Spring Security 核心版本的对应表:
核心版本对应关系表
|----------------|--------------------|-----------------|------------------|----------------------|
| Spring Boot 版本 | Spring Security 版本 | Java 最小版本 | Jakarta EE 规范 | 状态/建议 |
| 4.0.x | 7.0.x | Java 17 (推荐 25) | Jakarta EE 11 | 最新代次,支持 Passkeys、OTT |
| 3.4 / 3.5 | 6.4 / 6.5 | Java 17 | Jakarta EE 10 | 主流稳定,目前企业新项目首选 |
| 3.0 - 3.3 | 6.0 - 6.3 | Java 17 | Jakarta EE 10 | 稳定版,彻底废弃了旧版继承配置 |
| 2.1 - 2.7 | 5.1 - 5.8 | Java 8 / 11 | Java EE 8 / J2EE | 维护/旧版,仍有大量老项目在使用 |
| 1.5.x | 4.2.x | Java 7 / 8 | J2EE | 已过期,极老项目可见 |
一、三个关键的"分水岭"
在学习时,你需要重点区分这三个阶段,因为它们的写法完全不同:
分水岭 A:5.x ➡ 6.x (从 Boot 2 到 Boot 3)
-
最大的变化 :废弃了
WebSecurityConfigurerAdapter。 -
写法改变:从"继承类"改为"声明 Bean"。
-
依赖改变 :从
javax.servlet全面迁移到jakarta.servlet(如果你的import报错,通常就是这个原因)。
分水岭 B:6.x ➡7.x (从 Boot 3 到 Boot 4)
-
最大的变化:全面移除 6.x 中标记为过时的代码。
-
新特性 :原生支持 Passkeys (生物识别登录)和 OTT(一次性令牌/魔术链接)。
-
性能:深度优化了对 Java 虚拟线程(Virtual Threads)的支持。
分水岭 C:4.x ➡ 5.x
- 变化:引入了响应式编程支持(WebFlux Security)和更强大的 OAuth2 支持。
二、如何选择学习版本?
-
准备面试 :重点关注 6.x 到 7.x 的变化。面试官喜欢考察你对新特性的敏感度,比如"Spring Security 7 为什么要推 Passkeys?"
-
个人项目 :如果不受历史包袱限制,可以尝试 Spring Boot 4.0 + Security 7.0,提前接触未来的标准。
-
公司项目 :大概率还在 Security 5.8 (为了平滑过渡到 6.0)或者 6.x 稳定版。
关于作者 : 💡 予枫 ,某高校在读研究生,专注于 Java 后端开发与多模态情感计算。💬 欢迎点赞、收藏、评论,你的反馈是我持续输出的最大动力!
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=9wrxwtlju1l
当前加入还有惊喜相送!