
最近,Spring 生态系统的活动较为频繁,主要值得关注的是发布了如下项目的里程碑版本:Spring Boot、Spring Framework、Spring Data、Spring Security、Spring Integration 和 Spring Modulith。
Spring 团队还宣布,他们开始将 Spring 项目的里程碑和候选版本发布到 Maven 中央仓库,并计划在2025年11月发布 GA 版本。
Spring Boot
Spring Boot 3.5.0 的第一个里程碑版本提供了缺陷修复、文档改进、依赖关系升级和新特性,比如,支持 Spring Framework TaskDecorator
接口实现调度任务;使DataSourceBuilder
类支持Vibur DBCP连接池。关于该版本的更多详细信息,请参阅发布说明。
Spring Boot 的 3.4.2 和 3.3.8 版本发布(发布新闻分别参见此处和此处),它们提供了文档改进、依赖关系升级并解决了一些值得关注的问题,比如,当只声明logging.structured.gelf.host
属性时,GraylogExtendedLogFormatProperties
类的实例会抛出NullPointerException
异常;增加了BindableRuntimeHintsRegistrar
类中对TypeNotPresentException
的处理。关于这些版本的详细信息,请参阅3.4.2版本和3.3.8版本的发布说明。
Spring Framework
Spring Framework 7.0.0 的第一个里程碑版本提供了文档改进、依赖关系升级和新的特性,比如,重新定义并优化了KotlinDetector
,包括移除不再有用的方法;允许ClientHttpRequestInterceptor
接口的多次执行。这次版本发布还通过优化十多个模块和废弃org.springframework.lang
包中定义的注解,借助JSpecify提供了初步的 null 安全策略。关于该版本的更多信息,请参阅发布说明。
Spring Data
Spring Data 2025.1.0 的第一个里程碑版本提供了如下特性,将即将发布的 Jakarta EE 11 GA(采用 Hibernate ORM 7.0 和 Hibernate Validator 9.0 作为兼容实现)和 Kotlin 2.x 作为最低的基线要求;Spring Data JPA 的重要修订,包括使用Java Persistence Query Language(JPQL)进行衍生查询。Spring Data 团队预计在 2025 年 11 月发布 GA 版本。关于该版本的更多详细信息,请参阅发布说明。
Spring Security
Spring Security 6.5.0 的第一个里程碑版本提供了缺陷修复、依赖关系升级和新特性,比如,通过添加@AuthenticationPrincipal
和@CurrentSecurityContext
注解支持表达式模板(Expression Template);在ClientRegistration
类中新增了一个内部类ClientSettings
,该类提供了一个 boolean 字段requireProofKey
,用于启用 代码交换证明密钥(Proof Key for Code Exchange,PKCE)。关于该版本的更多信息,请参阅发布说明。
Spring Integration
Spring Integration 6.5.0 的第一个里程碑版本提供了一个缺陷的修复、依赖关系升级和新特性,例如,为AbstractMessageGroupStore
类添加了锁定策略;为@Aggregator
注解中定义的 discardChannel 元素添加了一个可选标记,以丢弃整组消息而不是单个消息。关于该版本的更多信息,请参阅发布说明和新功能页面。
Spring Modulith
Spring Modulith 1.4.0 的第一个里程碑版本提供了缺陷修复、依赖关系升级和新特性,比如,支持Micrometer Observation API的新DefaultModulithObservationConvention
类;以编程方式探测NamedInterface
类实例的新策略。关于该版本的更多详细信息,请参阅发布说明。
Spring Modulith 的 1.3.2 和 1.2.8 版本也已发布,分别升级了对 Spring Boot 3.4.2 和 3.3.8 的依赖关系,并解决了如下的问题:从RepositoryEntityController
类的实例创建名为repositoryEntityController
的 bean 时出现错误,从而导致了BeanCreationException
;为 Spring Framework @EventListener
注解生成 AsciiDoc 时,如果没有参数的话,会抛出IllegalArgumentException
。关于这些版本的更多详细信息,请分别参阅1.3.2版本和1.2.8版本的发布说明。
Spring AI
Spring AI MCP团队发布了 0.6.0,该版本提供了如下新特性:MCP 客户端与服务器之间的新协议版本协商;可配置的 SSE 端点,包括与默认/sse
端点的向后兼容性。该版本弃用的内容包括:McpClient
接口中定义的using(ClientMcpTransport)
方法,取而代之的是sync(ClientMcpTransport)
和async(ClientMcpTransport)
方法;同样在McpClient
接口中定义的Builder
类,取代它的是新的构建器模式;McpAsyncClient
类中定义的非反应式类型的构造函数。关于该版本的更多详细信息,请参阅发布说明。
Spring AMQP
Spring AMQP 3.2.2发布,提供了两个缺陷的修复、依赖关系升级和一项新特性,即移除被团队认为“虚假”的非公开RestTemplateHolder
类,从而解决了RestTemplateNodeLocator
类中的弃用警告问题,这个类是由公开的RestTemplateNodeLocator
类意外暴露的。该类的逻辑也进行了重构,以直接暴露 Spring Framework RestTemplate
类的实例。关于该版本的更多详细信息,请参阅发布说明。
Spring for Apache Kafka
Spring for Apache Kafka 3.3.2发布,该版本提供了文档改进、依赖关系升级并解决了如下问题:因为 Kafka 观察对象上 Micrometer DefaultLongTaskTimer
类实例的活动任务数不断增加,从而导致spring.kafka.listener.active
指标的内存泄漏,而这些任务从未被垃圾回收;由于KafkaMessageListenerContainer
类实例的观察范围未在异常处理的catch
子句中关闭,从而导致的异常。
该团队宣布,Apache Kafka 4.0.0 的开发工作将会开始。它将基于即将发布的 Kafka Client 4.0.0 和 Spring Framework 7.0.0,并兼容 Spring Boot 4.0.0。关于该版本的更多详细信息,请参阅发布说明。
Spring for Apache Pulsar
Apache Pulsar 的 Spring 1.2.2 和 1.1.8 版本发布,该版本提供了缺陷修复、依赖关系升级,并解决了如下问题:如果消息已发送到死信主题(Dead Letter Topic,DLT) 主题,监听器再次消费相同的消息时,会遇到PulsarBatchListenerFailedException
。这些版本分别包含在 Spring Boot 3.4.2 和 3.3.8 中。关于这些版本的更多详细信息,请分别参阅1.2.2版本和1.1.8版本的发布说明。
原文链接:
Spring News Roundup: Milestone Releases of Boot, Framework, Data, Security, Integration, Modulith
评论