Skip to content

What's New in Spring Framework 6.x

Juergen Hoeller edited this page Oct 12, 2022 · 157 revisions

What's New in Version 6.0

JDK 17+ and Jakarta EE 9+ Baseline

  • Entire framework codebase based on Java 17 source code level now
  • Migrated from "javax" to "jakarta" namespace for Servlet, JPA, etc
  • Compatible with latest web container generation: Tomcat 10, Jetty 11

General Core Revision

  • Upgrade to ASM 9.4 and Kotlin 1.7.
  • Full CGLIB fork with support for capturing CGLIB-generated classes.
  • Support for Ahead-Of-Time transformations.
  • First-class support for GraalVM native images (see related Spring Boot 3 blog post).
  • PathMatchingResourcePatternResolver uses NIO and module path APIs for scanning.
  • Early support for Netty 5 (alpha).

Core Container

  • AOT processing support in GenericApplicationContext ("refreshForAotProcessing").
  • Bean definition transformation based on pre-resolved constructors and factory methods.
  • 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 (retaining compatibility with Hibernate ORM 5.6).
  • Upgrade to R2DBC 1.0 (including R2DBC transaction definitions).

Spring Messaging

  • Support for RSocket interface clients.
  • Early support for Reactor Netty 2 (based on Netty 5).

General Web Revision

  • HTTP interface clients based on @HttpExchange service interfaces.
  • Support for RFC 7807 problem details.
  • Unified HTTP status code handling.
  • Micrometer-based observability for RestTemplate.

Spring MVC

  • PathPatternParser by default (with the ability to opt into PathMatcher).

Spring WebFlux

  • Revised reactive multipart processing.
  • JDK HttpClient integration with WebClient.
  • Micrometer-based observability for WebClient.

Testing

  • Support for testing AOT-processed application contexts.