如果你已经开始关注 Spring Boot 4.0,或者团队正在评估从 Spring Boot 3.x 迁移到 4.0,那么 4.0.1 到 4.0.6 这几个维护版本值得认真看一遍。
它们看起来不像一个“大版本发布”那样热闹:没有铺天盖地的新功能,也没有一个能单独拿出来做标题的巨大变化。
但如果把 6 篇 Release Notes 放在一起看,会发现一条很清晰的主线:
Spring Boot 4.0.x 早期维护版本,主要是在为 Spring Boot 4.0 的模块化、新依赖栈、Native Image、Observability、测试体系和云原生场景做稳定化。
这篇文章不按 4.0.1、4.0.2、4.0.3 逐个拆版本,而是把 6 篇原始 Release Notes 合在一起,从整体上整理一份清单。
你可以把它当成一份 Spring Boot 4.0.x 早期升级重点速查表。
下面这张图概括了 4.0.1 到 4.0.6 的主要更新方向:

Spring Boot 4.0.1-4.0.6 更新主线
这 6 个版本里,最密集的一类变化就是依赖升级。
它覆盖了 Spring 生态本身,也覆盖了 Web 容器、数据库驱动、日志、测试、响应式、观测、ORM 等基础组件。
主要包括:
这里有几个值得单独注意的点:
也就是说,这 6 个版本不是简单地“补几个 bug”,而是在不断把 Spring Boot 4.0 的基础依赖矩阵推到更稳定的新版本上。
Spring Boot 4.0 的一个重要背景,是模块化拆分更明显了。
这带来的好处是边界更清晰,但早期也会暴露出一些组合场景的问题。
从 4.0.1 到 4.0.6,很多修复都和模块化之后的依赖关系有关。
主要包括:
spring-boot-starter-kotlin-serialization 重命名为 spring-boot-starter-kotlinx-serialization-jsonspring-boot-starter-kotlin-serialization-test 重命名为 spring-boot-starter-kotlinx-serialization-json-testTestRestTemplate 现在需要依赖 spring-boot-restclientspring-boot-jetty 移除了不必要且未使用的 jetty-ee11-servlets 依赖spring-boot-resttestclient 没有包含在 spring-boot-starter-test-classic 中的问题这说明 Spring Boot 4.0.x 早期维护版本的一个核心任务,就是把模块拆开之后的 starter 体验、自动配置条件和依赖关系重新校准。
一句话概括:
模块化不是简单拆包,真正难的是拆完之后还能让用户以熟悉的方式稳定使用。
AOT 和 Native Image 也是这几篇 Release Notes 里反复出现的关键词。
相关修复包括:
/info endpoint 失败DataSourceBuilder 在 native image 中无法创建 Oracle UCP PoolDataSourceImplskipTests 设置时不应被禁用-parameters这些修复说明,Spring Boot 4.0.x 对 Native Image 的支持已经不是只关注“能不能跑起来”,而是在补齐测试、属性绑定、资源发现、验证器、Actuator、数据库连接池等更具体的生产使用细节。
Web 相关修复覆盖面很广,既有 Servlet/WAR 传统场景,也有 WebFlux、RSocket、WebSocket、HTTP Service Interface、RestClient 等新式用法。
主要包括:
ServerHttpMessageConvertersCustomizer 无法覆盖 Jackson JSON HTTP message converter 的问题HttpMessageConverters 同时拾取 client 和 server converter beans 的问题JsonMapper bean 时启动失败的问题server.jetty.threads.max 被忽略的问题server.tomcat.max-part-count 默认值从 10 提高到 50,使其与 Tomcat 默认值和 Spring Boot 3.x 默认值保持一致如果你的项目使用了 RestClient、HTTP Service Interface、WebSocket、RSocket、WAR 部署或 Native Image,这些修复都属于比较实际的稳定性改进。
Spring Boot 的 Actuator、Health 和 Observability 是生产环境里非常关键的一部分。
这 6 个版本里,相关修复也不少。
主要包括:
spring-boot-health 时出现 ClassNotFoundExceptionspring-boot-actuator-autoconfigure 存在但 spring-boot-health 不存在时默认安全配置错误/cloudfoundryapplication web path 没有限制在 Actuator 范围内spring-boot-micrometer-tracing-opentelemetry 在缺少 spring-boot-opentelemetry 时失败的问题ZipkinSpanExporter 被标记为 deprecated,并将在 Spring Boot 4.2 移除支持这部分可以总结为:
Spring Boot 4.0.x 在持续修复观测、健康检查、安全访问和云平台端点在模块化之后的组合问题。
Jackson 是 Spring Boot 4.0.x 早期维护版本中非常重要的一条线。
从 Release Notes 看,相关变化主要有三类。
第一类是版本升级:
第二类是兼容性修复:
spring.jackson.default-property-inclusion 没有应用到 content inclusionspring.jackson.use-jackson2-defaults=true 时,FAIL_ON_UNKNOWN_PROPERTIES 被启用JsonMapper bean 时启动失败第三类是文档和迁移说明:
这说明 Spring Boot 4.0.x 处在一个很明显的过渡阶段:
Jackson 3 是新方向,但 Jackson 2 的存量生态仍然需要被照顾。
测试相关问题在 4.0.1 到 4.0.6 中出现频率也很高。
主要包括:
TestRestTemplate 需要依赖 spring-boot-restclientTestRestTemplate.getRootUri() 返回空字符串spring-boot-starter-webmvc-test 中存在 RestClient.Builder bean,但运行时缺少 restclient starterRestTestClientAutoConfiguration 和 TestRestTemplateAutoConfiguration 可见性调整@SpringBootTest(webEnvironment = RANDOM_PORT) 不再应用到 management server 的问题spring-boot-starter-test-classic 时加载失败TransactionAutoConfiguration 但没有引入 TransactionManagerCustomizationAutoConfiguration@GraphQlTest 没有包含 @ControllerAdvicespring-boot-resttestclient 缺失于 spring-boot-starter-test-classic这部分的重点很明确:
Spring Boot 4.0.x 在重新打磨模块化之后的测试体验,尤其是 test starter、测试切片、测试客户端和管理端口测试场景。
容器和云平台相关修复主要集中在 Docker Compose、Cloud Foundry、Kubernetes 文档等方向。
包括:
tcp://.../ 且末尾有斜杠时失败apache/artemis 镜像的问题apache/activemq 镜像的问题spring-boot-starter-restclient 时失败spring-boot-cloudfoundry 对 spring-boot-security 应为 optional dependency/cloudfoundryapplication web path 范围问题spring.main.cloud-platform=none 没有禁用 cloud features这说明 Spring Boot 4.0.x 的稳定化不只发生在本地开发环境,也延伸到了容器、云平台和部署场景。
安全相关更新主要集中在自动配置、默认安全行为、自定义配置覆盖和 SSL 行为上。
包括:
JwtTypeValidator 替换默认配置后无法配置的问题PathPatternRequestMatcher.Builder 在 WebMvcTest 和 spring-boot-security-test 组合下没有自动配置spring.rabbitmq.ssl.verify-hostname 应用不一致@Ssl 注解在 @Bean 方法配合 @ServiceConnection 使用时不工作这类修复的共同点是:
Spring Boot 4.0.x 在减少自动配置和用户自定义安全配置之间的冲突,同时修复 SSL 与测试场景中的边界行为。
数据库、消息队列和中间件相关修复也不少。
主要包括:
ServerProperties 导致自动配置失败redis_version 时报告错误TransactionAutoConfigurationCqlSessionBuilder@EnableEnversRepositoriesJdbcDialect bean这部分可以理解为:
Spring Boot 4.0.x 正在补齐数据访问和中间件 starter 在新版本依赖栈下的自动配置细节。
除了具体模块,Spring Boot 自身的底层机制也有不少修复。
主要包括:
?application.properties 或 application.yaml 中被忽略spring.config.import 在环境变量和系统属性中定义时顺序不一致RandomValuePropertySource 不适合 secrets@NestedConfigurationProperty 与 constructor binding 组合的情况HttpServiceClientProperties 错误地在 LinkedHashMap class 上使用 @ConfigurationProperties这部分看起来很底层,但影响很广。
因为 Spring Boot 的核心体验,本质上就是自动配置、条件判断和配置属性绑定。如果这些机制更稳定,上层 starter 和业务应用才会更稳定。
Java 版本支持方面,这 6 个版本也有一些明确变化。
主要包括:
JavaVersion enum 新增 TWENTY_SIX/info endpoint 的问题被修复这说明 Spring Boot 4.0.x 已经开始为 Java 25、Java 26 等新版本做兼容性准备。
最后一个很明显的变化,是文档修正非常多。
这 6 个版本的文档更新覆盖了:
这类更新虽然不一定直接改变运行行为,但对迁移 Spring Boot 4.0 的团队很重要。
因为新版本真正难的地方,往往不是代码能不能编译,而是你能不能知道“现在应该怎么配”。
如果只用一句话概括 Spring Boot 4.0.1 到 4.0.6,我会这样说:
Spring Boot 4.0.x 早期维护版本不是功能爆发,而是围绕模块化、新依赖栈、Native Image、Observability、测试体系和云原生部署做系统性稳定化。
更具体一点,可以归纳成 6 个关键词:
如果你的项目已经在 Spring Boot 4.0.x 上,跟进到较新的 4.0.x 维护版本会更稳。
因为这 6 个版本修复的不是边角料,而是很多模块化之后真实应用组合里会遇到的问题。
今天的分享就到这里。后续我会持续为大家带来实用的技术干货和前沿的技术资讯。如果你对工具链探索感兴趣,我会在公众号「DevLlama」持续分享前端工程化、构建优化等实战经验,欢迎关注,不要错过任何精彩内容!
支持我们,点赞或分享到朋友圈!