VMware has released Spring Boot 2.7.0, the latest and final branch of the 2.x series. Spring Boot 3.0, planned for November 2022, will be the next version.
This latest version of Spring Boot includes support for Spring for GraphQL 1.0; support for the Podman container engine as an alternative to Docker Engine when building images using Cloud Native Buildpacks; dependency management and auto-configuration for Cache2k; and new test annotations for ElasticSearch and CouchBase.
Additionally, the JavaInfoContributor
and OsInfoContributor
classes have been improved and can now expose more information about the Java version, vendor and underlying OS, respectively, under the Info endpoint.
If a project contains custom auto-configurations, the registration must be moved from spring.factories to a new file named META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports.
A new @AutoConfiguration annotation has been introduced. It should be used to annotate top-level auto-configuration classes that are listed in the new file referenced above.
Spring Boot 2.7 moves to new versions of different Spring projects such as Spring Data 2021.2 and Spring Security 5.7. Also, many of the third-party dependencies have been updated such as Infinispan 13, Micrometer 1.9, Elasticsearch 7.17, H2 2.1 and Flyway 8.5.
Spring for GraphQL allows for configuring clients and servers using the new Spring Boot starter and annotations for this open-source data query and manipulation language for APIs. Further details may be found in this detailed InfoQ news story.
Spring Boot 2.x was firstly released in 2018 and thanks to easy deployment, minimum configuration and its capability to adapt to different use cases, it gained popularity year-after-year. It is now the most popular framework on Java according to the recent JRebel survey.
Spring Boot 2.5 has reached the end of its OSS support period, but commercial support is still available until August 2023.
Based on Spring Framework 6.0, Spring Boot 3.0 will be the next major revision and will require Java 17 or above. It will also mark the first version of Spring Boot that uses the Jakarta EE 9 APIs (jakarta.*
namespace) instead of the heritage Java EE 8 APIs (javax.*
namespace). This is a breaking change since all the libraries used in a project must be compatible with the new variant. Spring suggests migrating in steps (ex. 2.5 >> 2.6 >> 2.7), therefore it is recommended to upgrade to 2.7 before migrating to 3.0.
Spring Boot 3.0 will also support AOT (ahead-of-time) compilation and native executables thanks to Spring Native.