springboot4 项目从零搭建

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、生态逐步断粮"的三重死结

  1. 安全红线: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

下一节 学习 springboot4 新特性

相关推荐
摇滚侠7 分钟前
在 SpringBoot 项目中,开发工具使用 IDEA,.idea 目录下的文件需要提交吗
java·spring boot·intellij-idea
云姜.12 分钟前
java多态
java·开发语言·c++
李堇15 分钟前
android滚动列表VerticalRollingTextView
android·java
泉-java34 分钟前
第56条:为所有导出的API元素编写文档注释 《Effective Java》
java·开发语言
zfoo-framework1 小时前
帧同步和状态同步
java
charlotte102410241 小时前
高并发:关于在等待学校教务系统选课时的碎碎念
java·运维·网络
亓才孓1 小时前
[JDBC]PreparedStatement替代Statement
java·数据库
_F_y2 小时前
C++重点知识总结
java·jvm·c++
打工的小王2 小时前
Spring Boot(三)Spring Boot整合SpringMVC
java·spring boot·后端
毕设源码-赖学姐2 小时前
【开题答辩全过程】以 高校体育场馆管理系统为例,包含答辩的问题和答案
java·spring boot