
在 2025 年 6 月 16 日这一周,Spring 生态系统中活动频繁,重点包括:Spring Vault 4.0 的第一个里程碑版本发布;Spring Boot、Spring Security、Spring Authorization Server、Spring Session、Spring Integration、Spring Modulith、Spring REST Docs、Spring AMQP、Spring for Apache Kafka、Spring for Apache Pulsar和Spring Web Services的点版本发布。
许多 Spring 项目的版本序列将在 2025 年 6 月 30 日停止支持。
Spring Boot
Spring Boot的3.5.1、3.4.7和3.3.13版本提供了 Bug 修复、文档改进和依赖项升级。新特性包括:允许自定义设置在ConfigDataEnvironmentContributors类上的ConfigData.Options类的实例;升级到 Apache Tomcat 10.1.42,该版本引入了对multipart/form-data
请求中部分计数和头部大小的限制,可以分别使用server.tomcat.max-part-count
和server.tomcat.max-part-header-size
属性进行自定义。
3.5.3和3.5.2版本是计划外的发布,为的是解决在 3.5.1 版本中意外引入的一个不好处理的回归问题。
要了解关于这些版本的更多细节,请查看3.5.3、3.5.2、3.5.1、3.4.7和3.3.13版本的发布说明。
Spring Security
Spring Security的 6.5.1、6.4.7 和 6.3.10 版本提供了 Bug 修复、依赖项升级和新特性,例如:一个新的迁移指南,从现在已经不再使用的Spring Security SAML过渡到到内置支持的SAML 2.0;支持 AsciiDoc include-code扩展。要了解关于这些版本的更多细节,请查看6.5.1、6.4.7和6.3.10版本的发布说明。
Spring Authorization Server
Spring Authorization Server的 1.5.1、1.4.4 和 1.3.7版本提供了 Bug 修复、依赖项升级以及一个新特性。该特性改进了doFilterInternal()
(在OAuth2ClientAuthenticationFilter类中定义)的日志记录,以便可以报告客户端凭据的问题。要了解关于这些版本的更多细节,请查看1.5.1、1.4.4和1.3.7版本的发布说明。
Spring Session
Spring Session的 3.5.1 和 3.4.4 版本升级了依赖项,解决了集成测试中由竞态条件导致的ClassCastException
,而这是因为使用的 Redis SessionEventRegistry类假定每个会话 ID 只有一种事件类型。要了解关于这些版本的更多细节,请查看3.5.1和3.4.4版本的发布说明。
Spring Integration
Spring Integration 6.3.11 版本升级了依赖项,并解决了private obtainFolderInstance()
方法(在AbstractMailReceiver类中定义)的NullPointerException
,当 URL 未提供或为空时,改为使用 Jakarta Mail Store类中的getDefaultFolder()
方法。要了解关于这个版本的更多细节,请查看发布说明。
Spring Modulith
Spring Modulith的 1.4.1 和 1.3.7 版本提供了 Bug 修复、依赖项升级和功能改进:添加通过JSONPath查找应用程序模块标识符时(在使用 GraalVM 转换为原生镜像的过程中)缺失的反射元数据;解决了getModuleForPackage()
方法应用模块配置错误的问题,该方法是在ApplicationModules类中定义的,取决于 Java Map接口实例中存储的值的顺序,它可能会额外返回无效的包。要了解关于这些版本的更多细节,请查看1.4.1和1.3.7版本的发布说明。
Spring REST Docs
Spring REST Docs 3.0.4 改进了文档,并带来了一些显著的变化:由于 Spring Framework 6.1 发布序列将在 2025 年 6 月 30 日达到 OSS 支持的终点,因此,默认支持的版本变为 Spring Framework 6.2 版本序列;asciidoctor-maven-plugin
3.1.0 不再使用相对路径构建文档,3.0.4 提供了一个处理这一破坏性变化的变通方案。要了解关于这个版本的更多细节,请查看发布说明。
Spring AMQP
Spring AMQP 3.1.12 版本提供了依赖项升级和一些问题的解决方案,如:从commitIfNecessary()
方法的逻辑中移除了cancelled()
方法,该方法在BlockingQueueConsumer类中定义,曾导致关闭过程异常;由方法doInitialize()
(在DirectMessageListenerContainer类中定义)所创建的默认 Spring Framework 类ThreadPoolTaskScheduler的实例,在容器销毁时没有正确关闭。要了解关于这个版本的更多细节,请查看发布说明。
Spring for Apache Kafka
Spring for Apache Kafka的 3.3.7 和 3.2.10版本提供了 Bug 修复、依赖项升级和一个新特性,现在在异步处理 Kafka 消息失败时会传播跟踪上下文。要了解关于这些版本的更多细节,请查看3.3.7和3.2.10版本的发布说明。
Spring for Apache Pulsar
Spring for Apache Pulsar 1.2.7 和 1.1.13 版本改进了文档,并带来了一些值得注意的依赖项升级,如:Spring Framework 6.2.8 和 6.1.21;Project Reactor 2024.0.7 和 2023.0.19;Micrometer1.14.8 和 1.13.15。要了解关于这些版本的更多细节,请查1.2.7和1.1.3版本的发布说明。
Spring Web Services
Spring Web Services 4.0.15版本带来了依赖项升级,并解决了SimpleXsdSchema类引用 Java Element接口实例的问题,该接口不是线程安全的,当多个客户端同时请求 schema 文件时会导致问题。要了解关于这个版本的更多细节,请查看发布说明。
Spring Vault
Spring Vault 4.0.0 的第一个里程碑版本带来了许多新特性,包括:与 Spring Framework 7.0 保持一致;支持JSpecify,提高空值安全;新增ClientConfiguration类,增加对 SpringFramework ClientHttpRequestFactory接口的 Reactor、Jetty 和 JDK HTTP 实现的支持。要了解关于这个版本的更多细节,请查看发布说明。
停止开源支持
以下所有这些 Spring 项目(包括 Spring Framework)的版本序列,以及它们各自的时间线链接,都将在 2025 年 6 月 30 日到达 OSS 支持的终点:
所有这些项目的企业支持将在 2026 年 6 月 30 日到期。
原文链接:
https://www.infoq.com/news/2025/06/spring-news-roundup-jun16-2025/
评论