好家伙,就在昨晚,Spring Boot 团队悄悄地把 4.0.0 正式版发布了!这是 Spring Boot 真正意义上的新一代起点。

Spring Boot 4.0 基于 Spring Framework 7.0,带来了模块化更彻底的代码库、对 Java 25 的原生支持、全面拥抱 JSpecify 空安全体系、API 版本管理,以及一大波开发者期待已久的新特性。
话不多说,我们直击重点,看看这次更新到底有多香。概览:

新特性概览
HTTP Service Clients(终于来了!)
你是否已经厌倦了编写冗长的 RestTemplate 或 WebClient 样板代码?
现在,你再也不用手写 HTTP 调用的实现类了,直接写一个接口就行:
less
// 只需定义一个接口,Spring Boot会自动为你创建实现
@HttpExchange(url = "https://echo.zuplo.io")
public interface EchoService {
@PostExchange
Map<?, ?> echo(@RequestBody Map<String, String> message);
}
Spring Boot 4.0 为其提供了完整的自动配置和属性支持。这意味着,后端服务间的调用,从此将变得像本地方法调用一样简洁、直观,极大地降低了微服务开发的复杂性。
原生 API 版本管理
API 版本管理是后端开发中一个棘手但又无法回避的问题。现在,Spring Boot 为 Spring MVC 和 WebFlux 提供了原生的 API 版本控制支持。
通过简单的 spring.mvc.apiversion.*或 spring.webflux.apiversion.* 属性配置,或注入自定义的 ApiVersionResolver 等 Bean,你就可以轻松地实现基于 URL 路径、请求头或参数的版本控制策略。
支持 Gradle 9
Spring Boot 4.0 支持使用 Gradle 9 构建 Spring Boot 应用程序,同时仍然支持 Gradle 8.x(8.14 或更高版本)。
全面拥抱 JSpecify 空安全体系
Spring Boot 4.0 全面拥抱 JSpecify 空安全体系,核心变化只有一句话:默认非空(@NullMarked)+ 明确标注可空(@Nullable),让空指针从"运行时炸弹"变成"编译期报错"。
在类或包上加一个 @NullMarked,里面所有引用类型默认都是非空的,只有明确标了 @Nullable 的才可能为 null。这样:
- 方法签名一目了然:返回值、参数到底会不会 null;
- 配合 NullAway 后,漏检查的地方直接编译失败;
- 零运行时开销,完全兼容现有代码;
- 比 Optional 更轻量、更适合做大规模重构。
全面拥抱 Java 25
新版本正式提供对 Java 25 的顶级支持(LTS 版本 Java 17 依然兼容)。
当你在 application.properties 中开启虚拟线程 (spring.threads.virtual.enabled=true) 时,自动配置的 JDK HttpClient 将会默认使用虚拟线程,让你的 IO 密集型应用能够轻松获得巨大的性能提升。
依赖版本大跃进
Spring Boot 4.0 迎来了一次"全家桶"式的依赖升级:Spring Framework 7.0、Jackson 3.0、Hibernate 7.1、Tomcat 11、Jetty 12、Kafka 4.1、Kotlin 2.2.20......

几乎所有核心和第三方组件都同步到了最新稳定版。这相当于给你的整个技术栈做了一次"集体换代",带来了性能、安全性和新特性的全面提升。
Redis 静态主从支持
Lettuce 用户有福了!现在只需一行 spring.data.redis.masterreplica.nodes 配置,就能轻松搞定静态主从模式,不再强制依赖 Sentinel 或 Cluster。
这是我让 AI 总结的:


移除 Undertow
Spring Boot 4.0 完全移除了对 Undertow 的内嵌支持------不仅删掉了 spring-boot-starter-undertow,也不再提供任何 Undertow 相关的自动配置。移除的根本原因是:Spring Boot 4.0 基线升级到 Servlet 6.1(也就是说必须支持 Servlet 6.1 才能留在 starter 列表里),而截至 2025-10 官方发布说明时,Undertow 尚未兼容该版本。
这些新特性很多我都已经同步更新到了《Java 面试指北》(后端面试指南)中,保证内容与时俱进!


升级建议
4.0 是大版本,升级比平时麻烦一点。官方的强烈建议是:如果你现在还在 3.3、3.4 甚至更老的版本 → 先升到 3.5 再升 4.0。这条路径能帮你少踩 90% 的坑,强烈建议别跳过!

详细的迁移指南可以参考官方文档:github.com/spring-proj... 。
总结
Spring Boot 4.0.0 正式发布,基于 Spring Framework 7.0,全面支持 Java 25(含虚拟线程优化)。核心新特性包括:HTTP Service Clients 简化远程调用;原生 API 版本管理;全面采用 JSpecify 空安全体系(默认非空,编译期防 NPE);关键依赖升级至 Jackson 3.0、Tomcat 11、Hibernate 7.1 等;支持 Gradle 9;Redis 静态主从配置;移除 Undertow。
如果要升级的话,建议先迁移到 3.5 版本再升级。