Java基础、中级、高级、架构面试资料

Spring Boot 4.0.4 发布,18+ bug、30+ 依赖升级、4 个重大变更、Zipkin即将废弃

JAVA herman 8浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
【腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

上上周 Spring 正式发布了 7.0.6 版本,我当时还专门写了文章《https://mp.weixin.qq.com/s/z1xx57IuiLqL3UyjhYm-GQ》详细讲解了这个版本的变更,也预告了 Spring Boot 4.0.4 即将发布。

果不其然,上周五,Spring Boot 官方团队正式发布了 4.0.4 版本,这个版本带来了 18 个 Bug 修复、30+ 依赖升级、4 个重大变更、1 个即将废弃。所以,接下来,我就带领大家一起来看看 Spring Boot 4.0.4 这次发布迎来的关键修复与升级建议。

版本概览

正如大家所见,Spring Boot 4.0.4 是一次小版本变更。依旧是一个维护版本(Maintenance Release),主要包含重要的 Bug 修复、依赖升级和关键的安全、稳定性改进。对于正在使用 Spring Boot 4.x 的团队,非常建议尽快升级以获得更好的稳定性和安全性。

重要变更

文章配图参见https://mp.weixin.qq.com/s/YRcj9y4ytEtck3XNprJFCw

通读整个发布清单可知,本次版本升级有四个关键变更需要特别注意。

下面,我们一一展开。

Zipkin 已被弃用

Spring Boot 4.0.4 版本正式标记ZipkinSpanExporter为弃用状态,将在4.2 版本中彻底移除。这点和最近发布的 Java 26 很像,正如我的这篇《https://mp.weixin.qq.com/s/zucWddfzu-bPtcHCqnQW3w》中所说,Spring Boot 也在向“永远向后兼容”告别。

OpenTelemetry 的废弃,所带来的影响是,使用 Zipkin 进行链路追踪的应用需要迁移到 OTLP 协议或寻找替代方案。更多细节参阅官方文档https://github.com/spring-projects/spring-boot/issues/49453

Jackson 重大升级

  • 由于 2.20.x 已停止维护。所以,Jackson 2 依赖升级至2.21.1
  • 另外,3.0.x 也已停止维护了。所以,Jackson 3 依赖升级至 3.1.0。

这两个是社区讨论最热烈的变更。主要是 Jackson 3 带来了包名变更(com.fasterxml.jacksontools.jackson)、更严格的类型处理、以及默认行为的改变(如属性按字母排序、日期默认序列化为 ISO-8601 字符串等)。更多细节内容,可以查看我过往发布的这篇文章《https://mp.weixin.qq.com/s/Kupj1lB6zIvuQzhasjcTFA》。

Tomcat 文件上传配置调整

server.tomcat.max-part-count这个配置项,默认值从10提升至50,与 Tomcat 官方默认值及 Spring Boot 3.x 保持了一致。

如果升级这个版本,大家要注意,处理多文件上传的应用可能受此配置保护,建议检查当前配置是否合理。

Java 26 支持

前面我也写文章说过,这次官方文档再次确认支持了Java 26,为已经发布的 JDK 26 做好了准备。

核心 Bug 修复详解

本次版本共修复18 个 Bug,其中以下 5 个对生产环境影响最大。

  • 端点请求匹配器过于复杂(#49649)。EndpointRequest 针对健康检查分组的请求匹配器逻辑过于复杂,可能导致权限配置失效或性能下降。这个问题影响使用 Actuator 健康检查分组并进行安全管控的应用。这次官方团队简化了匹配器逻辑,提升性能和可预测性。
  • Cloud Foundry 路径未限制在 Actuator 内(#49646)。主要问题表现在/cloudfoundryapplication 路径未被正确限制在 Actuator 范围内,可能暴露敏感端点。该问题影响部署在 Cloud Foundry 环境的应用存在潜在安全风险。官方修复方案是强制该路径仅在 Actuator 上下文中可用。
  • Docker TCP 地址解析失败(#49596)。这个问题表现为,当 Docker 地址以斜杠结尾(如 tcp://docker:2375/)时,连接失败。它影响使用 Docker Compose 或远程 Docker 宿主的 CI/CD 流程。这次官方增强了地址解析的容错性。
  • 配置导入顺序不一致(#49482)。该问题表现为,通过环境变量或系统属性定义的spring.config.import加载顺序与配置文件中的定义不一致。影响依赖配置覆盖顺序的多环境部署可能出现意外行为。官方的修复方案是通过调整代码统一了配置加载顺序逻辑。
  • OAuth2 授权服务器配置被覆盖(#49367)。这个 issues 表现的问题是,自动配置会覆盖通过 Customizer Bean 应用的授权服务器配置。影响自定义 OAuth2 授权服务器配置的应用无法生效。官方的修复方案是调整了配置优先级,尊重用户自定义配置。

其他值得关注的修复

整理了 5 条,如下表格所示。

Bug ID问题描述影响场景
#49593RSocket WebSocket 设置暴露重复端点使用 RSocket 的应用
#49582邮件发送器缺失的错误分析误导邮件功能故障排查
#49344@AutoConfigureWebTestClient 导致超时配置失效WebTestClient 测试
#49343强制使用 Log4J2 时抛出 NoSuchMethodException日志系统切换
#49176WAR 部署中 ErrorPageRegistrar 未自动配置传统 WAR 部署

依赖升级清单

Spring Boot 4.0.4 升级了30+ 个核心依赖,主要包括以下核心依赖。

  • Spring Framework: 7.0.6(关键 bug 修复)
  • Spring Security: 7.0.4(安全补丁)
  • Spring Data: 2025.1.4
  • Hibernate: 7.2.7.Final
  • Kafka: 4.1.2
  • Micrometer: 1.16.4(可观测性改进)
  • Testcontainers: 2.0.4(测试基础设施)
  • Jetty: 12.1.7
  • Liquibase: 5.0.2

建议立即升级的场景

总结了下面 4 条。

  • 当前使用 Spring Boot 4.0.0-4.0.3
  • 遇到上述特定 Bug(如 Docker 连接、OAuth2 配置问题)
  • 需要 Java 26 支持
  • 使用 Spring 7.0.5 版本的应用

暂缓升级的场景

  • 重度依赖 Zipkin 且暂无法迁移到 OTLP
  • 正在进行 Jackson 3 大规模迁移(建议先完成迁移再升级)

升级步骤

只需简单 5 部,即可完成替换升级。

  1. 修改 pom.xmlbuild.gradle 版本号
  2. 检查 Jackson 相关代码兼容性
  3. 验证 Actuator 端点访问控制
  4. 在多文件上传场景测试 Tomcat 配置
  5. 运行全量集成测试

总的来说,Spring Boot 4.0.4 是一个稳定性优先的维护版本,修复了多个影响生产的关键 Bug。虽然 Jackson 升级带来一定迁移成本,但长期来看有利于技术栈的现代化。建议各位网友评估影响后尽快升级,确保应用安全性和稳定性。

参考资源

  • Spring Boot 4.0.4 Release Noteshttps://github.com/spring-projects/spring-boot/releases/tag/v4.0.4
  • Spring Boot 4.0 迁移指南https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide
  • Jackson 3 迁移指南https://spring.io/blog/2025/10/07/introducing-jackson-3-support-in-spring

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » Spring Boot 4.0.4 发布,18+ bug、30+ 依赖升级、4 个重大变更、Zipkin即将废弃