Skip to content

Spring Boot 3.0.0 M2 Release Notes

Phillip Webb edited this page Nov 13, 2024 · 1 revision

Spring Boot 3.0.0 M2 Release Notes

For changes in earlier milestones, please refer to:

Upgrading from Spring Boot 2.x

Minimum Requirements Changes

Spring Boot 3.0 M2 makes the following changes to its minimum supported versions:

  • Groovy 4.0

RxJava Dependency Management

Dependency management for RxJava 1.x and 2.x has been removed and dependency management for RxJava 3 has been added in its place.

Image Banner Support Removed

Support for image-based application banners has been removed. banner.gif, banner.jpg, and banner.png files are now ignored and should be replaced with a text-based banner.txt file.

Micrometer binders

The Micrometer team moved the binders to a separate micrometer module named micrometer-binders. To prevent split packages, the imports have changed, too. If you are using the old binders, please adjust your imports from io.micrometer.core.instrument.binder to io.micrometer.binder.

@ConstructingBinding No Longer Needed at the Type Level

@ConstructorBinding is no longer needed at the type level on @ConfigurationProperties classes and should be removed. When a class or record has multiple constructors, it may still be used on a constructor to indicate which one should be used for property binding.

New and Noteworthy

Tip
Check the configuration changelog for a complete overview of the changes in configuration.

Reinstated Support for EhCache 3

Support for EhCache 3 has been reinstated as it is now compatible with Jakarta EE 9.

Support has been added in a separate artifact. To use it your application, make sure to add the dependency with the jakarta classifier.

Reinstated Support for H2 Console

Support for H2’s Console has been reinstated as it is now compatible with Jakarta EE 9.

Improved @ConstructorBinding Detection

When using constructor bound @ConfigurationProperties the @ConstructorBinding annotation is no longer required if the class has a single parameterized constructor. If you have more than one constructor, you’ll still need to use @ConstructorBinding to tell Spring Boot which one to use.

For most users, this updated logic will allow for simpler @ConfigurationProperties classes. If, however, you have a @ConfigurationProperties and you want to inject beans into the constructor rather than binding it, you’ll now need to add an @Autowired annotation.

Dependency Upgrades

Spring Boot 3.0.0-M2 moves to new versions of several Spring projects:

Numerous third-party dependencies have also been updated, some of the more noteworthy of which are the following:

  • Groovy 4.0

  • Thymeleaf Layout Dialect 3.1

Deprecations in Spring Boot 3.0

  • None

Clone this wiki locally