springboot4 项目从零搭建
作者介绍
工作十多年的java +rust 程序员,专注于 云原生和高性能中间件 的开发
整体计划
0 springboot4 + jdk25 项目搭建
1 导入导出 高性能组件
2 学习springboot4 jdk25的新特性
3 搭建基础骨架
4 实现一个admin项目(oauth2)
之后新文章 会通知

本项目背景
现在项目 基本都在 springboot2 + jdk8 的存量占 java项目中的 80%,而最近几年 随着jdk8 等的不维护,漏洞的维护基本都在springboot3 + jdk11 以上才解决
而且 xxl-job 也已经升级到 springboot3,看看他的原因
从 2.x 直接升级到 Spring Boot 3,并不是"为了追新而追新",而是「安全合规 + 持续免费维护 + 利用新特性」三条主线权衡后的唯一可行路径,留在 Boot 2 将面临"有洞无补丁、JDK 锁死 8、生态逐步断粮"的三重死结
- 安全红线:Boot 2 已停更,新漏洞不再打补丁
2024 年之后,Spring 官方对 Boot 2.7.x 进入「End of OSS Support」状态;像 CVE-2024-38816、CVE-2024-38819 这类目录遍历漏洞,官方明确只在 3.2.x 及以后提供修复,2.x 社区版不再发版。
| 漏洞编号 | 漏洞类型 | Spring Boot 2.x 最终状态 | Spring Boot 3 首次修复版本 | 备注 |
|---|---|---|---|---|
| CVE-2024-38816 | 目录遍历(Spring Framework 级) | 2.7.18 仍受影,官方明确不再发版 | ≥ 3.2.0(底层 Spring Framework 6.1.14) | 必须升级 Boot 3 才能拿到免费补丁 |
| CVE-2024-38819 | 目录遍历(同系列另一入口) | 2.7.18 仍受影响 | ≥ 3.2.0(Framework 6.1.14) | 同上,2.x 无后续计划 |
| CVE-2023-20873 | Cloud Foundry 场景安全绕过 | 2.7.10/2.6.14 以后仅"企业支持"分支继续,社区版止步 | ≥ 3.0.6 | 官方公告:若要免费补丁请升 3.x |
| CVE-2023-20883 | 环境属性注入导致的 RCE | 2.7.18 为 2.x 最后一版,但漏洞在 2.x 代码仍存在;3.0.0+ 彻底重构了 Environment 后置处理器 | ≥ 3.0.0 | 2.x 仅给出缓解方案,无代码级修复 |
2 JDK 生命线:Boot 3 强制 JDK 17,正好顺水推舟
国内金融、运营商、政务等 2025 年已普遍要求「新上线系统须基于 JDK 17 及以上」,老 JDK 8 只能维护旧线。
3 依赖链「断粮」风险:MyBatis、Netty、Tomcat 都在抛弃 2.x
2025 年发布的 Netty 5、MyBatis 3.5.16、Tomcat 11 等核心依赖已把「最低要求」提到 Boot 3/Jakarta 版本;
为什么升级到 springboot4 ,而不是springboot3
之前已经搭建一个springboot3的基础骨架,但是我再测试 虚拟线程的时候 ,发现有bug,一查询, jdk25才彻底解决
然后看了一遍 springboot4 文档
解决的问题:
安全债务:Java 8已无公开安全更新
规范债务:从Java EE过渡到Jakarta EE
性能债务:传统线程模型已不适合云原生
期望
非业务要求
0 java 新特性 调研
1 满足 代码规范
2 满足 等保2.0 要求,经过阿里云的 安全监测,0问题
3 性能高,内存占用低
4 监控完整 ,默认支持 k8s
5 全面兼容SpringBoot3 Native
6 采用 leyben 优化性能
7 导入导出 高性能组件
业务要求
1 采用 DDD 领域驱动设计
2