Spring Boot 4.1.0-RC1 发布:核心新特性解析
2025年5月,Spring Boot 正式发布了 4.1.0-RC1 版本,这是 4.x 系列的第一个候选版本。作为 Spring Boot 4.x 的里程碑版本,4.1 带来了大量值得关注的新特性和改进。本文基于官方 Release Notes,为大家梳理这次更新的核心内容。
版本说明 :本文基于 Spring Boot
4.1.0-RC1,最终 GA 版本可能略有差异。
一、依赖版本全面升级
4.1.0-RC1 依赖的第三方库版本都有显著提升,部分关键升级:
| 组件 | 升级版本 | 说明 |
|---|---|---|
| Spring Framework | 7.0.7 | 7.x 时代的核心框架 |
| Spring Security | 7.1.0-RC1 | 安全模块同步更新 |
| Tomcat | 11.0.21 | 升级到 Tomcat 11 |
| Jetty | 12.1.8 | Jetty 12 系 |
| Hibernate | 7.2.12.Final | JPA 持久层 |
| Micrometer | 1.17.0-RC1 | 指标监控 |
| Reactor Bom | 2025.0.5 | 响应式基础设施 |
| Log4j2 | 2.25.4 | 日志框架 |
二、新增功能(New Features)
2.1 KafkaTemplate 配置增强
新增两个配置选项,用于精细控制 KafkaTemplate 的事务行为:
properties
spring.kafka.template.allow-non-transactional=true
spring.kafka.template.close-timeout=5s
allowNonTransactional:允许在非事务模式下发送消息closeTimeout:关闭时的超时时间
2.2 Redis 注解驱动监听器
新增 注解驱动的 Redis 监听器 支持,可以通过 @RedisListener 等注解简化 Redis 消息订阅的代码:
java
@RedisListener(channels = "my-channel")
public void handleMessage(String message) {
// 处理消息
}
2.3 WebFlux 全局 HTML 转义配置
响应式 WebFlux 现在支持 spring.webflux.default-html-escape 配置,实现应用级别的 HTML 转义:
properties
spring.webflux.default-html-escape=true
2.4 InetAddress 过滤 for HTTP Clients
新增对 HTTP Client 的 InetAddress 过滤支持,增强网络请求的安全性:
properties
spring.httpclient.pooled-metrics.filter-inet-address=true
2.5 SSL 证书监控增强
SslMeterBinder 现在支持从 truststore 中监控证书,提供更完善的 SSL 证书生命周期管理。
2.6 Windows 11+ ANSI 支持默认开启
从 Windows 11 开始,ANSI 颜色输出现在默认启用,命令行日志输出更加美观。
2.7 gRPC 异常处理 @GrpcAdvice
新增 @GrpcAdvice 注解支持,用于统一处理 gRPC 服务端的异常:
java
@GrpcAdvice
public class GrpcExceptionHandler {
@GrpcExceptionHandler
public Status handleRuntimeException(RuntimeException e) {
return Status.INTERNAL.withDescription(e.getMessage());
}
}
2.8 OpenTelemetry SDK 环境变量支持
新增对 OpenTelemetry SDK 环境变量的完整支持,配合 management.otel.* 配置,可以更灵活地对接可观测性生态。
2.9 LazyConnectionDataSourceProxy 支持
数据源连接代理支持懒加载模式,减少启动时的连接开销:
properties
spring.datasource.lazy=true
2.10 自定义 layers.xml 支持
新增从 classpath 读取自定义 layers.xml 的能力,方便对 Spring Boot fat jar 的分层进行深度定制。
三、Bug 修复(Bug Fixes)
4.1.0-RC1 共修复了 35 个 Bug,列举几个值得关注的:
| Issue | 说明 |
|---|---|
| #50190 | Actuator 安全配置在同时存在 health 和actuator-autoconfigure 时错误 |
| #50184 | RandomValuePropertySource 不适合用于 secrets |
| #50182 | Cassandra 自动配置修复 CQL Session 构建问题 |
| #50175 | RabbitMQ SSL 主机名验证配置不一致 |
| #49957 | spring.jackson.use-jackson2-defaults=true 时意外启用 FAIL_ON_UNKNOWN_PROPERTIES |
| #49870 | Docker Compose 无法使用 apache/artemis 镜像 |
四、值得关注的技术方向
4.1 Spring 4.x 全面拥抱响应式
从 Spring Framework 7.0 + Spring Security 7.1 的协同升级可以看出,Spring 生态正在全面向响应式编程和现代云原生基础设施演进。
4.2 可观测性持续加强
Micrometer 1.17 + Micrometer Tracing 1.7 + OpenTelemetry 1.60 的组合,使得 Spring Boot 4.1 在可观测性方面更加完善。
4.3 gRPC 支持走向成熟
从 @GrpcAdvice 注解的引入可以看出,Spring gRPC 的支持正在从实验性走向生产可用。
五、升级建议
注意:Spring Boot 4.x 需要 Java 21+,如果项目还在使用 Java 17 或更低版本,请先完成 JDK 升级。
- 评估周期:RC1 版本适合在测试环境先行验证,生产环境建议等 GA 版本
- 依赖检查 :重点关注
spring-boot-starter直接和传递依赖的兼容性 - Breaking Changes :
spring.jackson.use-jackson2-defaults的行为有变化,需检查相关配置
六、参考链接
本文原创,首发于 CSDN博客。