最近,Spring 生态系统较为活跃,值得关注的内容包括 Spring Boot、Spring Data、Spring Cloud、Spring Security、Spring Authorization Server、Spring Session、Spring for Apache Kafka 和 Spring for Apache Pulsar 的小版本及里程碑版本发布。
Spring Boot
Spring Boot 3.4.0 的第二个里程碑版本发布,提供了缺陷修复、文档改善、依赖项升级和许多新特性,比如,更新@ConditionalOnSingleCandidate
,以便于在存在单一常规 bean 的情况下处理后备 bean;在启用虚拟线程的情况下,配置SimpleAsyncTaskScheduler
类。关于该版本的更多详情,请参阅 发布说明。
Spring Boot 的 3.3.3 和 3.2.9 版本发布,解决了 CVE-2024-38807,“Spring Boot Loader 中的签名伪造漏洞(Signature Forgery Vulnerability in Spring Boot’s Loader)”,在该漏洞中,使用spring-boot-loader
或spring-boot-loader-classic
API 的应用程序包含了对嵌套 JAR 文件执行签名校验的自定义代码,这可能会导致受到签名伪造的攻击,即内容看上去可能是由某个签名者所签发的,但实际上却是另一个签名者签发的。使用较早版本 Spring Boot 的开发人员应该 升级 至 3.1.13、3.0.16 和 2.7.21 版本。
Spring Data
Spring Data 2024.0.3 和 2023.1.9 均是服务版本,其特性包括缺陷修复以及对如下子项目的依赖项升级,分别是 Spring Data Commons 3.3.3 和 3.2.9、Spring Data MongoDB 4.3.3 和 4.2.9、Spring Data Elasticsearch 5.3.3 和 5.2.9 以及 Spring Data Neo4j 7.3.3 和 7.2.9。这些版本分别可以通过 Spring Boot 3.3.3 和 3.2.9 来使用。
Spring Cloud
代号为 Mooregate 的 Spring Cloud 2024.0.0 发布了第一个里程碑版本,主要对子项目进行了缺陷修复和重要更新,包括 Spring Cloud Kubernetes 3.2.0-M1、Spring Cloud Function 4.2.0-M1、Spring Cloud OpenFeign 4.2.0-M1、Spring Cloud Stream 4.2.0-M1 和 Spring Cloud Gateway 4.2.0-M1。该版本与 Spring Boot 3.4.0-M1 兼容。关于该版本的更多信息,请参阅发布说明。
Spring Security
Spring Security 6.4.0 的第二个里程碑版本提供了缺陷修复、依赖项升级和新特性,比如,改进了对@AuthenticationPrincipal
和@CurrentSecurityContext
元注解的支持,以便更好地与方法安全性保持一致;保留了InMemoryUserDetailsManager
类中的自定义用户类型,以便于更好地用于loadUserByUsername()
方法;在AuthorizationDeniedException
类中添加了一个构造函数,以便为AuthorizationResult
接口提供默认值。关于该版本的更多详细信息,请参阅发布说明和新特性页面。
与之类似,Spring Security 的 6.3.2、6.2.6 和 5.8.14 版本 发布,提供了缺陷修复、依赖项升级和一项新的特性,即在ActiveDirectoryLdapAuthenticationProvider
类中实现了对多个 URL 的支持。关于这些版本的更多详情,请分别参阅 6.3.2 版本、6.2.6 版本和 5.8.14 版本的发布说明。
Spring Authorization Server
Spring Authorization Server 的 1.4.0-M1、1.3.2 和 1.2.6 版本发布,提供了缺陷修复、依赖项升级和新特性,比如,在OAuth2TokenRevocationEndpointFilter
类中添加了新的authenticationDetailsSource()
方法,用于从 Jakarta Servlet HttpServletRequest
接口的实例中构建验证详情信息;允许在OidcLogoutEndpointFilter
类中自定义 Spring Security LogoutHandler
接口的实例。关于这些版本的更多详细信息,请参阅 1.4.0-M1 版本、1.3.2 版本和 1.2.6 版本的发布说明。
Spring Session
Spring Session 3.4.0-M2 的第二个里程碑版本 提供了许多依赖项升级和一个新的RedisSessionExpirationStore
接口,所以现在可以在RedisIndexedSessionRepository.RedisSession
类的实例中自定义过期策略了。关于该版本的更多详细信息,请参阅发布说明和新特性页面。
与之类似,Spring Session 3.3.2 和 3.2.5 发布,它们也进行了依赖项升级,并解决了AbstractSessionWebSocketMessageBrokerConfigurer
类的实例由于 Spring Framework ApplicationListener
接口的非静态声明所导致的SessionRepository
接口立即实例化的问题。关于该版本的更多信息,请参阅 3.3.2 版本和 3.2.5 版本的发布说明。
Spring Modulith
Spring Modulith 的 1.3 M2、1.2.3 和 1.1.8 版本发布,提供了缺陷修复、依赖项升级和新的特性,比如,优化了基于事件和目标标识符的发布完成功能,使数据库能够优化查询计划;重构了EventPublication
接口,将isPublicationCompleted()
方法重命名为isCompleted()
。关于这些版本的更多详细信息,请参阅 1.3.0-M2 版本、1.2.3 版本和 1.1.8 版本的发布说明。
Spring AI
Spring AI 的 第二个里程碑版本发布,主要提供了缺陷修复、文档改进和新特性,比如,改进了ChatClient
接口、聊天模型、嵌入模型、图像生成模型和向量存储的可观测性特性;为 ETL 流水线提供了新的MarkdownDocumentReader
;由 Cassandra 作为支撑的新ChatMemory
接口。
Spring for Apache Kafka
Spring for Apache Kafka 的 3.3.0-M2、3.2.3 和 3.1.8 版本发布,其中包括缺陷修复、依赖项升级和新特性,比如,支持 Apache Kafka 3.8.0;改善了容错重试的错误处理。这些版本将分别包含在 Spring Boot 3.4.0-M2、3.3.3 和 3.2.9 中。有关这些版本的更多详细信息,请参阅 3.3.0-M2 版本、3.2.3 版本和 3.1.8 版本的发布说明。
Spring for Apache Pulsar
Spring for Apache Pulsar 1.2.0-M1 的第一个里程碑版本发布,提供了文档改善、依赖项升级和新特性,比如,能够配置默认主题和命名空间;能够为 JSON 模式使用自定义 Jackson ObjectMapper
类的实例。该版本将包含在 Spring Boot 3.4.0-M2 中。有关该版本的更多详细信息,请参阅发布说明。
同样,Spring for Apache Pulsar 的 1.1.3 和 1.0.9 版本发布,进行了依赖项升级,它们将分别包含在 Spring Boot 3.3.3 和 3.2.9 中。关于这些版本的更多详情,请参阅 1.1.3 版本和 1.0.9 版本的发布说明。
原文链接:
https://www.infoq.com/news/2024/08/spring-news-roundup-aug19-2024/
评论