本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
【腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
看了朋友圈,我发现还是有不少朋友请 3 休 13 的,太羡慕她们了。不过,还在岗位的也要站好最后一班岗,偷偷摸摸鱼也是可以的。
我今天闲着访问了一下 Spring 官网,发现 Spring Framework 7.0.9 已经正式发布了。作为 7.0.x 系列的重要维护版本,本次更新并未盲目堆砌新功能,而是将重心放在了安全边界收敛、内存泄漏修复以及高并发场景下的稳定性提升上。接下来我们就一起解读一下这次发布的核心内容。
SpEL 表达式编译默认关闭了
以前大家可能通过配置 spring.expression.compiler.mode 让 SimpleEvaluationContext 飞起来。但在 7.0.9 中,为了防范安全风险,官方直接默认关闭了编译功能!
为什么要改为默认关闭呢,原因在于最近接连爆出了几个 SpEL 漏洞 CVE-2026-41852、CVE-2026-41850、CVE-2026-41851、CVE-2026-41849 等,都和 SpEl 表达式编译有关。再加上,不少企业级应用,都没用到 SpEl 表达式编译功能,但它却默认开启了,导致被一些漏洞中招了,所以官方这次更新就给它默认关闭了。
但是这个默认关闭呐,可能会影响到我们的代码!同时,如果你的系统确实需要这个性能提升,且能 100% 保证表达式是安全的,官方建议我们通过手动调用 .withCompilationSupported() 方法来进行显式的开启。
代理头处理不再模棱两可
这算是可能影响代码的第二个更新了。
ForwardedHeaderFilter (MVC) 和 ForwardedHeaderTransformer (WebFlux) 现在要求我们进行明确表态,到底是用标准的 Forwarded 头,还是老派的 X-Forwarded-* 头。
Forwarded 和 X-Forwarded-* 了解的人可能不多,我简单说一下。两者的核心区别在于,前者是一个统一的标准化头部,而后者是一系列事实标准(非正式标准)的统称。Forwarded 的设计初衷就是为了解决 X-Forwarded-*在使用中带来的混乱和不可靠问题。
像下面这 3 个转发头,大家应该都见过吧。
- X-Forwarded-For: 客户端的原始 IP 地址。
- X-Forwarded-Host: 客户端请求的原始 Host 头。
- X-Forwarded-Proto: 客户端使用的原始协议(如 http 或 https)。
这种 X- 开头的并非标准化的,只有 Forwarded 头部是由 IETF 在 RFC 7239 中进行了正式定义。
现在使用 7.0.9 及以后的版本,就需要赶紧检查代码了,使用新的带布尔参数的构造函数。官方也已经放话,老版本的默认构造函数在 7.1 就要被废弃啦!
Spring 体验更丝滑了
本文配图参见我的公众号:https://mp.weixin.qq.com/s/YuWT5jqn4Iajcm4CuOMekQ。
总结下来主要有 3 点。
- 省内存了:注解元数据不再死死抱住 class 文件不放,Metaspace 压力更小。
- 防搞破坏了:SpEL 里的
BigDecimal/BigInteger幂运算加了上限,防住了恶意构造的 CPU 耗尽攻击。 - 容错更强了:URI 解析现在能自动忽略空的端口值,不会因为一个小小的格式问题就报错。
同时一些恼人 Bug 也被修复了。
- 数据库连接不卡了。修复了 EclipseLink 在高负载下,因为单例锁导致所有 JDBC 连接排队获取的“堵车”问题。
- 内存不漏了。揪出了 RSocket SETUP 帧处理中的 Buffer 泄漏元凶。
- 兼容未来。提前修复了与 Hibernate 8.0 / JPA 4.0 配合时,创建原生查询报错的问题,前瞻性拉满。
由于这个版本是 Spring 7.0.x 的最后一个版本,以稳定性为主,不少新特性将在 Spring 7.1.x 中陆续推出。安全社区方面目前已经确认,本次更新包含了重要的安全漏洞修复补丁。而且,Spring Security、Spring GraphQL 等兄弟项目也已经进行了火速跟进与适配。
最后
随着 AI 的发展,开源项目的一些漏洞被提前暴露出来了,这是好事。但也由于不少项目的漏洞实在是太多了,以至于它们把 issues 都给关了,只能提 PR,这一下子就让不少开源项目的 issues 干净了不少。
Spring 7.1 的相关版本也正在努力推进中,v7.1.0-M1 和 v7.1.0-M2 已经相继推出了,正式版预计会很快到来。Java 离开 Spring 就像盖楼缺少脚手架,提前祝大家国庆快乐!

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