首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Spring Boot 4.0.1 到 4.0.6:一次看懂早期维护版本的升级重点

Spring Boot 4.0.1 到 4.0.6:一次看懂早期维护版本的升级重点

作者头像
DevLlama
发布2026-06-01 20:53:17
发布2026-06-01 20:53:17
920
举报

Spring Boot 4.0.1 到 4.0.6:这 6 个维护版本,到底升级了什么?

如果你已经开始关注 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 更新主线


1. 核心依赖栈持续升级

这 6 个版本里,最密集的一类变化就是依赖升级。

它覆盖了 Spring 生态本身,也覆盖了 Web 容器、数据库驱动、日志、测试、响应式、观测、ORM 等基础组件。

主要包括:

  • • Spring Framework 持续升级到 7.0.x 后续版本
  • • Spring Security 持续升级到 7.0.x 后续版本
  • • Spring Data BOM 持续升级到 2025.1.x 后续版本
  • • Spring Kafka、Spring AMQP、Spring Batch、Spring Integration、Spring Session、Spring GraphQL、Spring HATEOAS、Spring LDAP、Spring Pulsar 等组件持续更新
  • • Hibernate 从 7.2.0.Final 持续升级到 7.2.x 后续版本
  • • Jackson 2 和 Jackson 3 都有持续升级
  • • Micrometer 和 Micrometer Tracing 持续升级
  • • Reactor BOM 持续升级到 2025.0.x 后续版本
  • • Tomcat、Jetty、Netty 等底层 Web 与网络组件持续升级
  • • Testcontainers 持续升级到 2.0.x 后续版本
  • • Elasticsearch Client、MongoDB、PostgreSQL、MySQL、MariaDB、Neo4j Java Driver、DB2 JDBC、Jaybird 等数据相关依赖持续更新
  • • Logback、Log4j2、Groovy、jOOQ、JUnit Jupiter、AssertJ、Lombok、Liquibase 等常用依赖持续更新

这里有几个值得单独注意的点:

  • • Hibernate 升级到 7.2.x,是因为 Hibernate 7.1 进入 limited support
  • • Jackson 2 从 2.20.x 升级到 2.21.x,是因为 Jackson 团队结束了 Jackson 2.20.x 支持
  • • Jackson 3 从 3.0.x 升级到 3.1.x,是因为 Jackson 团队结束了 Jackson 3.0.x 支持

也就是说,这 6 个版本不是简单地“补几个 bug”,而是在不断把 Spring Boot 4.0 的基础依赖矩阵推到更稳定的新版本上。


2. 模块化之后的依赖边界被反复打磨

Spring Boot 4.0 的一个重要背景,是模块化拆分更明显了。

这带来的好处是边界更清晰,但早期也会暴露出一些组合场景的问题。

从 4.0.1 到 4.0.6,很多修复都和模块化之后的依赖关系有关。

主要包括:

  • spring-boot-starter-kotlin-serialization 重命名为 spring-boot-starter-kotlinx-serialization-json
  • spring-boot-starter-kotlin-serialization-test 重命名为 spring-boot-starter-kotlinx-serialization-json-test
  • • 使用 TestRestTemplate 现在需要依赖 spring-boot-restclient
  • spring-boot-jetty 移除了不必要且未使用的 jetty-ee11-servlets 依赖
  • • 修复 RestClient、RestTestClient、TestRestTemplate 在模块化之后的自动配置问题
  • • 修复 Cloud Foundry、Actuator、Health、Security、OpenTelemetry、Zipkin 等模块组合时的缺失依赖或类加载问题
  • • 修复 classic starters 缺少部分模块的问题
  • • 修复 spring-boot-resttestclient 没有包含在 spring-boot-starter-test-classic 中的问题
  • • 修复 reactive MongoDB starter 传递引入同步 MongoDB driver 的问题
  • • 补充 Spring Session、Tracing、Cloud Foundry、H2 Console、test-scoped starters 等模块化相关文档

这说明 Spring Boot 4.0.x 早期维护版本的一个核心任务,就是把模块拆开之后的 starter 体验、自动配置条件和依赖关系重新校准。

一句话概括:

模块化不是简单拆包,真正难的是拆完之后还能让用户以熟悉的方式稳定使用。


3. Native Image 与 AOT 场景继续补强

AOT 和 Native Image 也是这几篇 Release Notes 里反复出现的关键词。

相关修复包括:

  • • AOT 处理期间保留的 profiles 没有配置到 native image 中
  • • MVC 和 WebFlux Validator 的消息插值在 native image 中工作不正确
  • • Java 25 Native Image 下 Actuator /info endpoint 失败
  • DataSourceBuilder 在 native image 中无法创建 Oracle UCP PoolDataSourceImpl
  • • HTTP Service Interface Client 在 native image 中因为属性绑定缺失无法工作
  • • Flyway migration scripts 在 native image 资源扫描中无法找到子目录脚本
  • • AOT 测试处理在 skipTests 设置时不应被禁用
  • • Maven 插件处理 AOT 代码时没有设置 -parameters
  • • native image 场景下 Java 版本要求提示不够清晰
  • • Native Build Tools Plugin 有版本升级

这些修复说明,Spring Boot 4.0.x 对 Native Image 的支持已经不是只关注“能不能跑起来”,而是在补齐测试、属性绑定、资源发现、验证器、Actuator、数据库连接池等更具体的生产使用细节。


4. Web、HTTP 客户端与服务端行为修复很多

Web 相关修复覆盖面很广,既有 Servlet/WAR 传统场景,也有 WebFlux、RSocket、WebSocket、HTTP Service Interface、RestClient 等新式用法。

主要包括:

  • • 修复 RestClient 自动配置条件与模块化不匹配的问题
  • • 修复 RestClient-based HTTP service clients 自动配置条件问题
  • • 修复 Jackson properties 没有正确应用到 RestClients 的问题
  • • 修复 ServerHttpMessageConvertersCustomizer 无法覆盖 Jackson JSON HTTP message converter 的问题
  • • 修复 HttpMessageConverters 同时拾取 client 和 server converter beans 的问题
  • • 修复 HTTP Service Interface Client 在 native image 中的属性绑定问题
  • • 修复 WebMVC 和 WebFlux Validator 在 native image 中的消息插值问题
  • • 修复 WebSocket 在 Jackson 存在但没有 JsonMapper bean 时启动失败的问题
  • • 修复 WebSocket messaging task executors 自动配置条件问题
  • • 修复 RSocket 在 websocket setup 中暴露重复 endpoint 的问题
  • • 修复 Jetty 使用 virtual threads 时 server.jetty.threads.max 被忽略的问题
  • • 修复 WAR 部署中的 Servlet 环境、ErrorPage、自定义错误页、安全 matcher 等问题
  • • 将 server.tomcat.max-part-count 默认值从 10 提高到 50,使其与 Tomcat 默认值和 Spring Boot 3.x 默认值保持一致

如果你的项目使用了 RestClient、HTTP Service Interface、WebSocket、RSocket、WAR 部署或 Native Image,这些修复都属于比较实际的稳定性改进。


5. Actuator、Health 与 Observability 持续修复

Spring Boot 的 Actuator、Health 和 Observability 是生产环境里非常关键的一部分。

这 6 个版本里,相关修复也不少。

主要包括:

  • • Health endpoint group 没有考虑 reactive health indicators
  • • Actuator Info 在 Java 25 Native Image 中失败
  • • 使用 Actuator 但没有 spring-boot-health 时出现 ClassNotFoundException
  • spring-boot-actuator-autoconfigure 存在但 spring-boot-health 不存在时默认安全配置错误
  • • EndpointRequest 在 health groups、links、base-path、HTTP method、additional endpoint paths 等场景下的问题
  • /cloudfoundryapplication web path 没有限制在 Actuator 范围内
  • • WebFlux Cloud Foundry links endpoint 处理 query string 的问题
  • • SSL metrics 不再自动配置的问题
  • • distribution summary meter 的 min、max、SLO boundaries 对整数值处理不正确的问题
  • • OpenTelemetry logging export 需要 actuator module 的问题
  • • OpenTelemetry 与 Zipkin starter 同时使用时配置无效的问题
  • spring-boot-micrometer-tracing-opentelemetry 在缺少 spring-boot-opentelemetry 时失败的问题
  • • starter-webmvc 与 starter-zipkin 组合导致应用启动失败的问题
  • • OpenTelemetry 的 ZipkinSpanExporter 被标记为 deprecated,并将在 Spring Boot 4.2 移除支持

这部分可以总结为:

Spring Boot 4.0.x 在持续修复观测、健康检查、安全访问和云平台端点在模块化之后的组合问题。


6. Jackson 2 到 Jackson 3 的过渡继续推进

Jackson 是 Spring Boot 4.0.x 早期维护版本中非常重要的一条线。

从 Release Notes 看,相关变化主要有三类。

第一类是版本升级:

  • • Jackson 2 BOM 持续升级
  • • Jackson 3 BOM 持续升级
  • • Jackson 2 从 2.20.x 升级到 2.21.x
  • • Jackson 3 从 3.0.x 升级到 3.1.x

第二类是兼容性修复:

  • spring.jackson.default-property-inclusion 没有应用到 content inclusion
  • • ProblemDetail 被错误渲染成 XML
  • • Jackson properties 可能没有正确应用到 RestClients
  • • Jackson2 HTTP message converter 使用了 Jackson3 XMLMapper class 作为条件
  • • 在启用 spring.jackson.use-jackson2-defaults=true 时,FAIL_ON_UNKNOWN_PROPERTIES 被启用
  • • WebSocket 在 Jackson 存在但没有 JsonMapper bean 时启动失败
  • • WebSocket messaging 的部分自动配置仅在使用 Jackson 时生效

第三类是文档和迁移说明:

  • • 文档修正 Jackson Kotlin Module 的过时引用
  • • 说明 Jackson 2 支持不会过早移除,至少延后到 4.3
  • • 修正 Jackson generator 和 parser 替代配置的文档问题

这说明 Spring Boot 4.0.x 处在一个很明显的过渡阶段:

Jackson 3 是新方向,但 Jackson 2 的存量生态仍然需要被照顾。


7. 测试体系被重点修复

测试相关问题在 4.0.1 到 4.0.6 中出现频率也很高。

主要包括:

  • • 使用 TestRestTemplate 需要依赖 spring-boot-restclient
  • TestRestTemplate.getRootUri() 返回空字符串
  • spring-boot-starter-webmvc-test 中存在 RestClient.Builder bean,但运行时缺少 restclient starter
  • RestTestClientAutoConfigurationTestRestTemplateAutoConfiguration 可见性调整
  • @SpringBootTest(webEnvironment = RANDOM_PORT) 不再应用到 management server 的问题
  • • slice tests 在使用 spring-boot-starter-test-classic 时加载失败
  • • 某些 sliced tests 引入 TransactionAutoConfiguration 但没有引入 TransactionManagerCustomizationAutoConfiguration
  • @GraphQlTest 没有包含 @ControllerAdvice
  • • nested test class 的 imports 被忽略
  • • Spring Integration test starter 没有包含 Spring Integration test module
  • • classic starters 缺少多个模块
  • spring-boot-resttestclient 缺失于 spring-boot-starter-test-classic
  • • 文档补充 LocalTestWebServer、Web 应用测试、测试客户端、custom test-scoped starters 命名规范等内容

这部分的重点很明确:

Spring Boot 4.0.x 在重新打磨模块化之后的测试体验,尤其是 test starter、测试切片、测试客户端和管理端口测试场景。


8. Docker Compose、Cloud Foundry 与云原生场景修复

容器和云平台相关修复主要集中在 Docker Compose、Cloud Foundry、Kubernetes 文档等方向。

包括:

  • • Docker Compose SSL 支持没有按文档工作
  • • Docker 地址为 tcp://.../ 且末尾有斜杠时失败
  • • Docker credential helpers 在 Windows 下带文件扩展名时无法执行
  • • Docker Compose 不支持 apache/artemis 镜像的问题
  • • Docker Compose 不支持 apache/activemq 镜像的问题
  • • 文档补充如何配置传给 Docker Compose 的 arguments
  • • Cloud Foundry 在 Servlet Web 应用缺少 spring-boot-starter-restclient 时失败
  • spring-boot-cloudfoundryspring-boot-security 应为 optional dependency
  • /cloudfoundryapplication web path 范围问题
  • • WebFlux Cloud Foundry links endpoint 处理 query string 的问题
  • spring.main.cloud-platform=none 没有禁用 cloud features
  • • 文档强调 Kubernetes probes 中 preStop hook 的重要性
  • • 文档补充 startup probes 相关 Kubernetes 链接
  • • 文档补充 forwarded headers 在 cloud deployments 中的安全考虑

这说明 Spring Boot 4.0.x 的稳定化不只发生在本地开发环境,也延伸到了容器、云平台和部署场景。


9. 安全、SSL、OAuth2 与授权配置修复

安全相关更新主要集中在自动配置、默认安全行为、自定义配置覆盖和 SSL 行为上。

包括:

  • • 自定义 JwtTypeValidator 替换默认配置后无法配置的问题
  • • 自动配置覆盖 authorization server 中 Customizer beans 应用的配置
  • • Actuator 自动配置存在但 Health 模块缺失时默认安全配置错误
  • PathPatternRequestMatcher.BuilderWebMvcTestspring-boot-security-test 组合下没有自动配置
  • spring.rabbitmq.ssl.verify-hostname 应用不一致
  • @Ssl 注解在 @Bean 方法配合 @ServiceConnection 使用时不工作
  • • 文档澄清 OAuth 2 registrations 和 providers 之间的推断关系
  • • 文档补充 forwarded headers 在云部署中的安全考虑
  • • 补充 SAML 相关 Kotlin 示例

这类修复的共同点是:

Spring Boot 4.0.x 在减少自动配置和用户自定义安全配置之间的冲突,同时修复 SSL 与测试场景中的边界行为。


10. 数据访问与中间件集成继续补齐

数据库、消息队列和中间件相关修复也不少。

主要包括:

  • • JDBC Session 自动配置可能无法匹配 auto-configured DataSource
  • • Spring Session 在 WAR 部署中因为缺少 ServerProperties 导致自动配置失败
  • • Redis health check 在 INFO 响应缺少 redis_version 时报告错误
  • • Rabbit health indicator 在连接的 server properties 缺少 version 时报告错误
  • • Kafka starter 下缺少 TransactionAutoConfiguration
  • • Cassandra auto-configuration 错误配置 CqlSessionBuilder
  • • Elasticsearch Rest5Client 自动配置错误配置底层 HTTP client
  • • Reactive MongoDB starter 传递依赖同步 MongoDB driver
  • • Envers repository registrar 应复用 @EnableEnversRepositories
  • • Flyway migration scripts 在 native image 中无法找到子目录脚本
  • • 文档补充 Liquibase 和 Flyway starters 的需要
  • • 文档修订 Liquibase test-only migrations 相关章节
  • • 文档说明 Spring Data JDBC 和 AOT 场景下需要 JdbcDialect bean

这部分可以理解为:

Spring Boot 4.0.x 正在补齐数据访问和中间件 starter 在新版本依赖栈下的自动配置细节。


11. 配置属性、条件判断和自动配置机制继续修正

除了具体模块,Spring Boot 自身的底层机制也有不少修复。

主要包括:

  • • bean condition 评估不应不必要地查询 bean factory 中不存在的类型
  • • 当 bean condition 引用了不存在的类型时,condition evaluation report 中不应显示为 ?
  • • 配置属性覆盖在外部 application.propertiesapplication.yaml 中被忽略
  • spring.config.import 在环境变量和系统属性中定义时顺序不一致
  • RandomValuePropertySource 不适合 secrets
  • • metadata annotation processor 忽略 method-level @NestedConfigurationProperty 与 constructor binding 组合的情况
  • HttpServiceClientProperties 错误地在 LinkedHashMap class 上使用 @ConfigurationProperties
  • • API versioning path strategy 应该最后应用
  • • 配置属性默认值不能通过 Environment 获取的文档说明得到澄清

这部分看起来很底层,但影响很广。

因为 Spring Boot 的核心体验,本质上就是自动配置、条件判断和配置属性绑定。如果这些机制更稳定,上层 starter 和业务应用才会更稳定。


12. Java 新版本支持继续推进

Java 版本支持方面,这 6 个版本也有一些明确变化。

主要包括:

  • JavaVersion enum 新增 TWENTY_SIX
  • • 文档补充 Java 26 支持
  • • Java 25 Native Image 下 Actuator /info endpoint 的问题被修复
  • • CLI 文档中过时的 Java 版本要求被修正
  • • native image 场景下 Java 版本要求提示得到改进

这说明 Spring Boot 4.0.x 已经开始为 Java 25、Java 26 等新版本做兼容性准备。


13. 文档和迁移说明大面积修正

最后一个很明显的变化,是文档修正非常多。

这 6 个版本的文档更新覆盖了:

  • • 模块化之后的 starter 和模块使用说明
  • • RestClient、TestRestTemplate、HTTP Service Interface Client、WebTestClient 等说明
  • • Spring Session 模块化后的文档重写
  • • Tracing 章节适配 Spring Boot 4 模块化
  • • Cloud Foundry starter 文档
  • • Docker Compose 参数、SSL 支持和相关说明
  • • Kubernetes probes、preStop hook、startup probes 文档
  • • Jackson 2 / Jackson 3 支持和迁移说明
  • • Kotlin 示例补充和修正
  • • H2 Console 新模块说明
  • • Log4j2 rolling policy 默认行为说明
  • • Batch、Cache、Liquibase、Flyway、Infinispan、Kafka、Lettuce 等文档修正
  • • Javadoc、示例代码、断链、错别字和过时说明修复

这类更新虽然不一定直接改变运行行为,但对迁移 Spring Boot 4.0 的团队很重要。

因为新版本真正难的地方,往往不是代码能不能编译,而是你能不能知道“现在应该怎么配”。


结尾:这 6 个版本的真正关键词

如果只用一句话概括 Spring Boot 4.0.1 到 4.0.6,我会这样说:

Spring Boot 4.0.x 早期维护版本不是功能爆发,而是围绕模块化、新依赖栈、Native Image、Observability、测试体系和云原生部署做系统性稳定化。

更具体一点,可以归纳成 6 个关键词:

  1. 1. 依赖升级
  2. 2. 模块化修复
  3. 3. Native Image 与 AOT
  4. 4. Web 与测试体验
  5. 5. Actuator 与 Observability
  6. 6. 云原生与安全配置

如果你的项目已经在 Spring Boot 4.0.x 上,跟进到较新的 4.0.x 维护版本会更稳。

因为这 6 个版本修复的不是边角料,而是很多模块化之后真实应用组合里会遇到的问题。

今天的分享就到这里。后续我会持续为大家带来实用的技术干货和前沿的技术资讯。如果你对工具链探索感兴趣,我会在公众号「DevLlama」持续分享前端工程化、构建优化等实战经验,欢迎关注,不要错过任何精彩内容!

支持我们,点赞或分享到朋友圈!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevLlama 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spring Boot 4.0.1 到 4.0.6:这 6 个维护版本,到底升级了什么?
  • 先看一张总览图
  • 1. 核心依赖栈持续升级
  • 2. 模块化之后的依赖边界被反复打磨
  • 3. Native Image 与 AOT 场景继续补强
  • 4. Web、HTTP 客户端与服务端行为修复很多
  • 5. Actuator、Health 与 Observability 持续修复
  • 6. Jackson 2 到 Jackson 3 的过渡继续推进
  • 7. 测试体系被重点修复
  • 8. Docker Compose、Cloud Foundry 与云原生场景修复
  • 9. 安全、SSL、OAuth2 与授权配置修复
  • 10. 数据访问与中间件集成继续补齐
  • 11. 配置属性、条件判断和自动配置机制继续修正
  • 12. Java 新版本支持继续推进
  • 13. 文档和迁移说明大面积修正
  • 结尾:这 6 个版本的真正关键词
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档