decorative image for blog on spring boot 3
March 10, 2022

What to Expect in Spring Boot 3: Roadmap, Release Date, and Deprecations

Java Frameworks

According to our latest Java Developer Productivity Report, Spring Boot is used by nearly 74% of Java developers working with microservices. With Spring Framework 6 and Spring Boot 3 scheduled for a general availability release later this year, many teams are curious as to whether or not they should upgrade their Spring framework version.

In this blog, we explore what we know about the Spring Boot 3 release, including potential features, improvements, changes to dependencies, and more.

Spring Boot 3 Release Roadmap

Spring Boot 3 is the long-awaited follow up release to Spring Boot 2 release. It is currently available as an M1 release under Spring Boot 3.0.0-M1, with Spring Boot 3.0.0-M2 scheduled for delivery on March 24.

Releases follow a MAJOR.MINOR.PATCH version scheme, with M indicating a milestone release, RC indicating a release candidate release, and SNAPSHOT indicating a build.

According to the Spring versioning guidelines from 2020, the M2 version would typically be followed by one to two release candidates before being released to the general public.

Spring Boot 3 Release Date

The Spring Boot 3 general availability release date is currently scheduled for late November 2022.

Spring Boot 3 Release Cycle

According to the Git Hub wiki for Spring Frameworks, Spring Boot “releases a new major or minor version every six months (in May and November),” with patches released as necessary. Looking at historical releases, major Spring versions have been released every four years, with Spring Boot 1 in 2014, Spring Boot 2 in 2018, and Spring Boot 3 planned for 2022. Minor releases fill in the gaps between those releases, with a minor release every six months.

What to Expect in Spring Boot 3

Based on the Spring Boot 3.0.0-M1 release, we can make some educated guesses as to the new features, improvements, and dependencies users can expect in the Spring Boot 3 GA release.

Spring Boot 3 Features

Spring Boot 3 features, at least judging by the 3.0.0-M1 release changelog, have largely remained the same when compared to Spring Boot 2.x releases. The main changes, as we’ll discuss later, are around Java version (and Gradle version for Gradle users), Spring Framework version, Jakarta EE version, and the resulting dependency upgrades and deprecations.

Spring Boot 3 Dependency Upgrades

The biggest change in Spring Boot 3 is the decision to use Java 17 as the minimum version. Requiring Java 17 and newer is a big move, with Spring set to be the first major framework to require this recent LTS release.

Spring Boot 3 will also require Spring Framework 6.For Gradle users, Spring Boot 3 will require Gradle 7.3 or later.

The remaining noteworthy dependency upgrades can be broken into two groups, Spring projects, and third-party libraries.

Dependency Upgrades for Spring Projects

Spring Boot 3.0.0-M1 introduces dependency upgrades for a number of Spring Projects, including:

Micrometer 2.0.0-M1

Spring Integration 6.0.0-M1

Spring Security 6.0.0-M1

Spring AMQP 3.0.0-M1

Spring HATEOAS 2.0.0-M1

Spring Session 2022.0.0-M1

Spring Batch 5.0.0-M1

Spring Kafka 3.0.0-M1

Spring Web Services 4.0.0-M1

Spring Data 2022.0.0-M1

Spring LDAP 3.0.0-M1

 

Spring Framework 6.0.0-M2

Spring REST Docs 3.0.0-M1

 

Given that all of these projects are currently designated as milestone releases, these dependency upgrades will assumedly update to reflect the latest major versions as they’re released.

Third-Party Dependency Upgrades

Spring Boot 3.0.0-M1 also introduces dependency upgrades for a number of third-party libraries, including:

Artemis 2.20.0

Jakarta JSON Bind 3.0

Jakarta WebSocket 2.0

Hazelcast 5.0

Jakarta Mail 2.0

Jakarta WS RS 3.0

Hibernate Validator 7.0

Jakarta Persistence 3.0

Jakarta XML Bind 3.0

Jakarta Activation 2.0

Jakarta Servlet 5.0

Jakarta XML Soap 2.0

Jakarta Annotation 2.0

Jakarta Servlet JSP JSTL 2.0

Jetty 11

Jakarta JMS 3.0

Jakarta Transaction 2.0

jOOQ 3.16

Jakarta JSON 2.0

Jakarta Validation 3.0

Tomcat 10

The most notable, and numerous, changes here (and in the deprecations) are related to the change from Jakarta EE 8 to Jakarta EE 9, and the underlying Servlet and JPA specifications.

Spring Boot 3 Deprecations

Most deprecations in Spring Boot 3.0.0-M1 fall into three categories:

  • Classes, methods, and properties previously removed in Spring Boot 2.x releases
  • Jakarta EE 9 dependencies where packages don’t currently support the new package names in Jakarta EE 9
  • Support removals

Removed Classes, Methods, and Properties

As noted above, Classes, methods, and properties that have been removed in Spring Boot 2.x releases have been removed in the Spring Boot 3.0.0-M1 release. That will likely remain the case with the GA release.

Jakarta EE 9 Package Deprecations

The Spring Boot 3.0.0-MC release notes point to a handful of Jakarta EE 9 package (likely temporary) package deprecations, including:

EhCache 3

Infinispan

REST Assured

H2’s web console

Jolokia

SMTP appending with Logback

Hibernate’s metrics

Pooled JMS

SMTP appending with Log4j 2

Support Removals and Other Deprecations

Spring Boot 3.0.0-M1 has also removed support for a few additional dependencies, including Apache ActiveMQ, Atomikos, EhCache 2, and HazelCast 3. Jersey is another notable deprecation, and has been removed until it offers support for Spring Framework 6.

There have also been a number of configuration property changes and deprecations in between 2.7.0-M1 and 3.0.0-M1. A full list can be found here.

Final Thoughts

With what we know about the Spring Boot 3 release based on the first milestone release, this edition of the popular Java framework is focused on modernizing its dependencies to accommodate a wave of innovations within the Java ecosystem.

Be sure to stay tuned to our blog for continuing coverage on Spring Boot 3, Spring Framework 6, and latest releases and innovations in the Java landscape.

Want to Speed Up Development on Your Java Application?

Skip redeploys and save valuable Java development time with JRebel. Try free for 14 days via the link below.

Try JRebel for Free

Additional Resources