前言
功能完整Spring6.0候选版本已发布,Spring官方希望在之后发布第一个Spring Boot 3.0候选版本时发布更多的选版本,然后在11月发布最终版本。
作为核心框架的主要修订版,Spring 6.0 RC1版本附带了Java 17+基础,迁移至Jakarta EE 9+(Java ee的前生)上以及更多的基础的改造,例如最新的web容器jakarta命令替换(javax)、Tomcat 10 / Jetty 11和最新的持久化框架如 Hibernate ORM 6.1
更重要的是,这个版本完成了我们对Spring应用程序上下文的AOT( Ahead-Of-Time,AOT即提前编译技术)处理支持。这开阔了更多的优化部署安排,从微调的JVM部署到对GraalVM本机映像的一流支持(参见相关的Spring Boot 3博客文章)。请继续关注Spring Boot 3.0 RC1!
在Spring Framework 6.0中还有许多进一步的特性和改进,例如基于服务接口的HTTP接口客户端,对@HttpExchangeRFC 7807问题细节的支持,以及Spring的HTTP客户端的Micrometer-based 。请查看我们的What 's New页面以获得全面的概述,并尽早试用6.0 !
特性
基于JDK 17+ and Jakarta EE 9+
- 整个框架代码库基于Java 17源代码级别。
- Servlet、JPA等从“javax”命名空间迁移到“jakarta”命名空间。
- 兼容最新的web容器:Tomcat 10, Jetty 11。
- 提前兼容JDK 19的虚拟线程( virtual threads)
普通代码修改
- 升级到ASM 9.4和Kotlin 1.7
- 完成CGLIB fork,支持获取CGLIB生成的类。
- 全面基础的支持AOT(Ahead-Of-Time transformations.)提前编译的支持
- 支持 GraalVM
核心容器(Core Container)
- 在GenericApplicationContext ("refreshForAotProcessing")中支持AOT处理。
- 基于提前解析的构造函数和工厂方法的完成对Bean的定义。
- PathMatchingResourcePatternResolver使用NIO和模块路径api进行扫描。
- Support for early proxy class determination for AOP proxies and configuration classes.
数据存取及事务处理(Data Access and Transactions)
- Support for pre-determining JPA managed types (for inclusion in AOT processing).
- JPA support for Hibernate ORM 6.1 (retaining compatibility with Hibernate ORM 5.6).
- Upgrade to R2DBC 1.0 (including R2DBC transaction definitions).
- Removal of JCA CCI support.
Spring Messaging
- RSocket interface client based on
@RSocketExchange
service interfaces. - Early support for Reactor Netty 2 based on Netty 5 alpha.
General Web Revision
- HTTP interface client based on
@HttpExchange
service interfaces. - Support for RFC 7807 problem details.
- Unified HTTP status code handling.
- Micrometer-based (JVM的一种技术)可以被
RestTemplate进行显示
.
Spring MVC
PathPatternParser
used by default (with the ability to opt intoPathMatcher
).- Integration with Micrometer Context Propagation for
Flux
andMono
return values from controller methods. - 移除过时的tile和FreeMarker JSP支持。
Spring WebFlux
- New
PartEvent
API to stream multipart form uploads (both on client and server). - Addition of
ResponseEntityExceptionHandler
to customize WebFlux exceptions and render RFC 7807 error responses. Flux
return values for non-streaming media types (no longer collected to List before written).- Early support for Reactor Netty 2 based on Netty 5 alpha.
- JDK
HttpClient
integrated withWebClient
. - Micrometer-based (JVM的一种技术)可用于
WebClient显示
.
Testing
- 支持测试 AOT-processed .
- Integration with HtmlUnit 2.64 request parameter handling.