Spring Boot 4.0 发布

白发任 文章 16

Spring Boot 团队悄悄地把 4.0.0 正式版发布了!这是 Spring Boot 真正意义上的新一代起点。

Spring Boot 4.0 基于 Spring Framework 7.0,带来了模块化更彻底的代码库、对 Java 25 的原生支持、全面拥抱 JSpecify 空安全体系、API 版本管理,以及一大波开发者期待已久的新特性。

话不多说,我们直击重点,看看这次更新到底有多香。概览:

Spring Boot 4.0 发布-第2张图片-多梦笔记

Spring Boot 4.0 发布-第3张图片-多梦笔记

新特性概览

HTTP Service Clients(终于来了!)

你是否已经厌倦了编写冗长的RestTemplateWebClient样板代码?

现在,你再也不用手写 HTTP 调用的实现类了,直接写一个接口就行:

// 只需定义一个接口,Spring Boot会自动为你创建实现 @HttpExchange(url="https://echo.zuplo.io") public interface EchoService {     @PostExchange Map echo(@RequestBody Map 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……

Spring Boot 4.0 发布-第4张图片-多梦笔记

几乎所有核心和第三方组件都同步到了最新稳定版。这相当于给你的整个技术栈做了一次“集体换代”,带来了性能、安全性和新特性的全面提升。

Redis 静态主从支持

Lettuce 用户有福了!现在只需一行spring.data.redis.masterreplica.nodes配置,就能轻松搞定静态主从模式,不再强制依赖 Sentinel 或 Cluster。

这是我让 AI 总结的:

Spring Boot 4.0 发布-第5张图片-多梦笔记

移除 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 面试指北》(后端面试指南)中,保证内容与时俱进!

Spring Boot 4.0 发布-第6张图片-多梦笔记

Spring Boot 4.0 发布-第7张图片-多梦笔记

升级建议

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

Spring Boot 4.0 发布-第8张图片-多梦笔记

详细的迁移指南可以参考官方文档:github.com/spring-proj… 。


分享到:

标签: Spring Boot 4.0