One of the more timely presentations at the 2022 JAX London conference was by Spring Staff 2 engineer Oliver Drotbohm – Spring Boot 3 and Spring Framework 6 – A New Generation. Drotbohm shared the projected release dates for Spring Framework 6 and Spring Boot 3: the end of November 2022. He also pointed out that the recently released Spring Boot Migrator can migrate a Spring Boot 2.7 application to version 3.0 and a Spring Boot 2.6 application to version 2.7. A migration to Spring Boot 3 is necessary because Spring Framework 6 uses Jakarta EE 9, which supports the jakarta.*
package namespace.
Drothbohm reiterated other pillars of these releases: JDK 17 as the new baseline, out-of-the-box support for Native Java with GraalVM in Spring Boot, and baked-in observability with Micrometer. The SpringOne conference, scheduled for December 6-8, 2022, will be the launchpad for Spring Framework 6 and Spring Boot 3.
Drotbohm didn't discuss the support of the Java Platform Module System (JPMS) in Spring Framework 6, on which InfoQ first reported last year. He later confirmed with InfoQ that full JPMS support won't arrive in Spring Framework 6.0 but may come at a later date:
Spring Framework 6.0 strongly focuses on AOT and GraalVM native images for optimizing the deployment arrangement of Spring-based applications. At the same time, our module system initiative has not arrived at a build migration to full JPMS module descriptors yet. There have been very few requests for it in the course of this year. Looking forward, the use of
jlink
's module-bounded approach for application/framework-level modules might get superseded by runtime images based on GraalVM-style individual reachability analysis in the long run. That said, OpenJDK's Project Leyden aims to reuse module system concepts and tools for its standardized static image approach, so deeper module system alignment remains part of our long-term technology strategy for the Spring Framework 6.x generation.
Both the current production version, Spring Boot 2.7, and the upcoming Spring Boot 3 will receive free support until November 2023 and extended commercial support until February 2025. As the last release of the Spring Boot 2 line, Spring Boot 2.7 has 1.5 years of free support. But the one year of support for Spring Boot 3 is more in line with other recent Spring Boot releases. VMware has already made it clear that Spring Framework users should upgrade faster with version 6, as InfoQ previously reported last year:
Spring Framework 6 users are strongly encouraged to join our stream of feature releases, not expecting to stay on 6.0.x for long but rather making the 6.1, 6.2, etc. upgrades a part of their regular usage model.
Other Java frameworks show an even faster upgrade pace. For instance, Quarkus releases feature updates about once a month, with bug-fix releases in between.
Drotbohm also provided new insight into observability with Spring Framework 6 and Spring Boot 3. Although the Spring portfolio projects will be instrumented with Micrometer, observability will surface more at the infrastructure level (such as a request to a REST controller) for developers.
Spring currently includes 22 projects and supports a vast array of third-party libraries. Drotbohm also noted that Spring Framework 6 and Spring Boot 3 will probably not fully support all those projects and libraries with native Java and observability at launch. Future Spring releases will remedy this.