本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
先给大家拜个晚年,新春愉快!
过年期间,不少号都没有发文,我也没发,不像往年那么卷。这几天我看到还有不少新来的网友关注我,私信我催更发文。刚好也快开工了,我也存了不少干货,今天就来一篇《Spring 7.0.4 发布,@Lazy 支持套娃,性能提升 50%!》,讲解一下这个版本带来的新特性、性能优化、云原生增强以及 bug 修复等内容吧。
7.x 主线版本概览
2026 年 2 月,Spring Framework 7.0.4 正式发布。作为 7.x 主线的重要维护版本,本次更新包含40+ 项新特性、15 个 Bug 修复、18 项文档改进,以及多项依赖升级。
值得注意的是,Spring Framework 7.0 是 Spring Boot 4.0 的底层核心,而 Spring Boot 4.0 被业界称为“爆炸性升级”,带来了模块化架构重构、虚拟线程原生支持等重大变化。因此,7.0.4 的稳定性对整个 Spring 生态至关重要。
核心死锁 Bug 问题彻底修复
启动时死锁问题
这是一个最重要的 Bug 修复,issues 为 #36260,是一个启动时死锁问题。
具体表现为,在应用启动阶段,如果存在多个 ShutdownHook 并发执行,可能导致 ContextClosedEvent 与 System.exit 之间的竞争条件,引发死锁。
影响范围包括以下场景。
- 使用优雅关闭(Graceful Shutdown)的应用
- 容器化环境(Kubernetes)中频繁重启的服务
- 集成测试场景下的上下文关闭
官方的修复方案优化了 ConfigurableApplicationContext 的关闭机制,确保在多线程环境下对生命周期事件的同步处理更加健壮。
回想一下我之前发的文章《https://mp.weixin.qq.com/s/ELbKnj3HFvf87uYlsTCfWg》、《https://mp.weixin.qq.com/s/gRAx3ECLuykseOwoBpFrEw》,其实社区早就反馈了。好在这个问题在 7.0.2 和 7.0.3 中已部分修复,7.0.4 进一步完善了边缘场景的处理,彻底消除了类似隐患。
其他重要 Bug 修复
总结出了下面 5 个,包括涉及的问题 issues,描述以及影响场景。
| 问题编号 | 问题描述 | 影响场景 |
|---|---|---|
#36298 | HttpEntity 参数无法反映修改后的 HTTP 头 | RESTful API 开发 |
#36293 | ConcurrentReferenceHashMap 锁竞争问题 | 高并发缓存访问 |
#36285 | AbstractMessageConverter 不支持 MIME 类型通配符 | 消息转换 |
#36266 | StompBrokerRelayMessageHandler 重启失败 | WebSocket/STOMP |
#36226 | Netty4HeadersAdapter.remove 返回空列表而非 null | Netty 响应式编程 |
启动速度提升 30-50%
这个性能优化是一个巨大的亮点,启动速度提升 30-50%。下面我们稍微展开一下。
请求映射性能大幅提升
7.0.4 针对 Web 层的性能进行了多项优化,包括以下几项。
#36279:优化请求映射的哈希计算性能#36278:加速HandlerMethod的 Bean 查找#36276:改进版本映射(Version Mapping)性能#36275:单模式请求映射优化
根据官方以及社区的反馈,实际效果在大型微服务应用中,这些优化可将请求处理延迟降低15-20%。
Validation 验证性能优化
根据#36274可知,针对 Bean Validation 的验证组判定逻辑进行了优化,减少反射调用开销,提升表单验证场景的性能。
方法参数注解缓存
36307 表明 MethodParameter 和 AnnotatedMethod 现在会缓存方法注解信息,避免重复解析,特别适用于大量使用注解的 AOP 场景。
上面这些都表明,即使是大名鼎鼎的 Spring 框架,也还有不少优化空间的。之前还有不少网友,通过阅读源码,提交优化方面的 PR,并把这些写到简历中,也是一大亮点。
部分新特性解读
元注解支持深度扩展
Spring 7.0.4 进一步增强了元注解(Meta-annotation)的灵活性。
// 现在 @Lazy 和 @Validated 支持任意深度的元注解
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Lazy // 作为元注解
public @interface LazyService {
String value() default "";
}
@LazyService // 间接实现 @Lazy 功能
public class MyService {
// ...
}
相关 Issue 为:#36306(@Lazy)、#36305(@Validated)。说白了@Lazy注解等,现在支持套娃了。
HTTP 消息转换器可定制化
开发者现在可以禁用默认的HttpMessageConverter注册,实现更精细的 MVC 配置。
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
// 清除默认转换器,只添加自定义的
converters.clear();
converters.add(new MyCustomConverter());
}
}
拦截器异常日志增强
现在,当 HandlerInterceptor 抛出异常时,日志现在会明确标识是哪个拦截器出了问题,极大简化调试。
ERROR o.s.web.servlet.DispatcherServlet -
HandlerInterceptor [com.xttblog.AuthInterceptor] threw exception: ...
重试机制增强
Spring Retry 的集成得到了进一步完善。
- 新增
beforeRetry回调,支持RetryState参数 - 提供
TaskCallback/Callable/Runnable包装器,简化重试任务编写
@Retryable(backoff = @Backoff(delay = 1000))
public void retryableTask(TaskCallback callback) {
// 重试逻辑
}
RestClient 增强
新增 requiredBody() 方法,强制要求响应体必须存在,避免空指针。
String result = restClient.get()
.uri("/api/data")
.retrieve()
.requiredBody(String.class); // 如果响应体为空,直接抛异常
还有其它小更新,推荐大家多去官网https://github.com/spring-projects/spring-framework/releases/tag/v7.0.4看看。
依赖升级
这个版本的发布,也升级了不少依赖,Spring 框架也是紧跟技术前沿。
| 依赖 | 升级版本 | 亮点 |
|---|---|---|
Reactor | 2025.0.3 | 响应式流性能优化 |
Micrometer | 1.6.3 | 可观测性增强 |
ASM | 9.9.1 | Java 25 字节码支持 |
Apache POI | 5.5 | Office 文档处理 |
特别值得关注的是Reactor 2025.0.3的升级,它针对 JDK 25 的虚拟线程进行了深度优化,结合 Spring Framework 7.0 的多线程异步启动机制,可实现30-50% 的启动速度提升。
升级建议与注意事项
推荐升级场景
- 已在 7.x 版本:建议尽快升级至 7.0.4,获得死锁修复和性能优化
- 使用 Spring Boot 4.0:Spring Boot 4.0.4 将包含此版本,建议同步升级
- 云原生应用:容器化部署、Kubernetes 环境特别受益于启动优化和稳定性修复
注意事项
- JDK 版本要求:Spring Framework 7.0 最低要求 Java 17,推荐 Java 21 或 25 以获得虚拟线程支持
- Jakarta EE 11:确保依赖库已迁移至
jakarta.*命名空间 - 破坏性变更:从 6.x 升级需参考《Spring Boot 4 迁移指南》
https://spring.io/projects/spring-boot
总结
Spring Framework 7.0.4 是一个高质量的生产级维护版本,它不仅彻底解决了早期版本的死锁隐患,还通过多项性能优化显著提升了 Web 层处理能力。元注解的深度支持、HTTP 转换器的灵活配置、重试机制的增强,都让开发体验更加优雅。
对于已经在使用 Spring 7.x 的团队,强烈建议尽快升级;对于仍在 6.x 观望的开发者,随着 Spring Boot 4.0 生态的全面成熟,升级时机已然成熟。
目前看来 Spring 7.x 和 Spring Boot 4.x 以及逐渐成熟了,祝大家用的开心!

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!
本文原文出处:业余草: » Spring 7.0.4 杀疯了,40 个新特性、15 个 Bug 修复、1 个死锁问题被终结!