Use Java 17 and Jakarta EE 9 with Spring Boot 3 and Spring Framework 6
Published on Nov 25, 2022
The long-awaited Spring Framework 6 and Spring Boot 3 have been released by VMware. The Spring Framework 5 releases mark the beginning of a new generation for the Spring ecosystem. Java 17 and Jakarta EE 9 are required for Spring Framework 6. It is also compatible with the recently released Jakarta EE 10. In addition, Micrometer provides observability, tracing, and metrics. Spring Boot 3 requires the Spring Framework 6. It supports static Ahead-of-Time (AOT) compilation with GraalVM Native Image for creating native executables.
Spring Framework 6 and Spring Boot 3 were announced by VMware at SpringOne 2021. For the first time since 2010, a Spring Framework update has been released two years after the previous major release – version 5.3 in 2020. Josh Long, Java Champion and Spring Developer Advocate at VMware, discussed the extended development time for Spring Framework 6 in a recent interview:
Spring Framework 6 supports Jakarta EE 10, so you can use it with Tomcat 10.1, Jetty 11, and Undertow 2. Also, Spring Framework 6 simplifies HTTP requests by defining them as HTTP interfaces, like Spring Data JPA simplifies database queries through repository interfaces. With the addition of RFC 7807 error details to HTTP error messages, error messages are now more helpful.
A preview feature of Spring Framework 6 is the ability to use virtual threads from Project Loom on Java 19. Java’s virtual threads and structured concurrency API simplify concurrent programming and make it more efficient. As opposed to Oracle, Spring views virtual threads as a complement to reactive programming, rather than as a replacement for it.
Among the notable upgrades in Spring Framework 6 are Kotlin 1.7, Hibernate ORM 6.1, Jackson 2.14 for JSON and XML parsing, and R2DBC 1.0 for reactive database access.
Using JPMS and the jlink linking tool, the OpenJDK Project Leyden plans to optimize Java. Spring applications cannot utilize these optimisations without JPMS support.
Spring Boot 3 offers native executable support. The executables start faster, use less memory, have smaller container images, and are more secure than their predecessors. As a result, Java becomes more competitive in the cloud. It was the frameworks Quarkus, Micronaut, and Helidon that made native executables popular in Java. A six-part series of articles on this topic was recently published. A developer can create a native executable with Spring Boot 3 using ./mvnw -Pnative package or ./gradlew nativeCompile when the GraalVM Native Image compiler is installed on his or her machine.
The Java namespace for Jakarta EE 9 has been changed from javax. to jakarta.. Existing Spring and Spring Boot applications that import Jakarta EE types, such as annotations, validations, and JPA, will need to be modified. Therefore, the recently introduced Spring Boot Migrator project is working on “automated upgrades from Spring Boot 2.7 to Spring Boot 3.0.”
Spring Framework 6 is now supported for a shorter period of time by VMware for both commercial and open-source versions.
Machine Learning .NET 2.0 enhances text classification
An upgrade to Microsoft’s machine learning framework for .NET improves text classification…
Lambda Telemetry API Provides Enhanced Observability
AWS has announced the AWS Lambda Telemetry API, a new way for extensions to receive…