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 新特性

相关推荐
wanghowie2 小时前
01.05 Java基础篇|I/O、NIO 与序列化实战
java·开发语言·nio
APIshop2 小时前
Java 爬虫 1688 评论 API 接口实战解析
java·开发语言·爬虫
编程乐学(Arfan开发工程师)2 小时前
信息收集与分析详解:渗透测试的侦察兵 (CISP-PTE 核心技能)
java·开发语言·javascript·python
Filotimo_2 小时前
在java开发中:JSON序列化和JSON反序列化
java·microsoft·json
czlczl200209252 小时前
SpringBoot实践:从验证码到业务接口的完整交互生命周期
java·spring boot·redis·后端·mysql·spring
Han_coding12082 小时前
从原理到实战:基于游标分页解决深分页问题(附源码方案)
java·服务器·数据库·spring boot·spring cloud·oracle
二等饼干~za8986682 小时前
碰一碰发视频系统源码开发搭建--技术分享
java·运维·服务器·重构·django·php·音视频
ss2732 小时前
线程池优雅关闭:线程池生命周期管理:四种关闭策略的实战对比
java·jvm·算法
不能只会打代码2 小时前
蓝桥杯--生命之树(Java)
java·算法·蓝桥杯·动态规划·贪心