Skip to content

Spring Boot 4.0.0 RC1 Release Notes

Stéphane Nicoll edited this page Oct 3, 2025 · 4 revisions

Spring Boot 4.0.0-RC1 Release Notes

For changes in earlier milestones, please refer to:

Upgrading from Spring Boot 3.5

Migration Guide

To help with upgrading, a migration guide is available.

Classic Uber-Jar Loader Support

The classic uber-jar loader has been removed from this release. You should remove any loader implementation configuration from your build file.

For maven this means removing the following:

<loaderImplementation>CLASSIC</loaderImplementation>

For Gradle, it will be lines similar to:

loaderImplementation = org.springframework.boot.loader.tools.LoaderImplementation.CLASSIC

Optional Dependencies in Maven

Optional dependencies are no longer included in uber jars. If you need them, you can use the configuration setting <includeOptional>true</includeOptional>

Jackson

The JSON-specific spring.jackson.read.* and spring.jackson.write.* properties have moved beneath spring.jackson.json.read and spring.jackson.json.write respectively.

Spring Session

The properties for Spring Session Data Redis and Spring Session Data MongoDB have been renamed to reflect the dependencies on Spring Data Redis and Spring Data MongoDB respectively. Properties that previously began with spring.session.redis now begin with spring.session.data.redis. Similarly, properties that previously began with spring.session.mongodb now begin with spring.session.data.mongodb.

HttpMessageConverters deprecation

This release deprecates Spring Boot’s HttpMessageConverters because Spring Framework improved the converter configuration in the traditional stack. HttpMessageConverters had several issues, including the fact that it conflates client and server converters.

If your application declares a custom org.springframework.boot.http.converter.autoconfigure.HttpMessageConverters bean, this is still supported but the type itself is deprecated. Instead, your application can declare one or more ClientHttpMessageConvertersCustomizer and ServerHttpMessageConvertersCustomizer that will let you customize converters in a flexible way.

Minimum Requirements Changes

None.

New and Noteworthy

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

RestTestClient

Support for the newly introduced RestTestClient has been added.

With a regular @SpringBootTest or when @AutoConfigureMockMvc is used, you can autowire a RestTestClient that operates on the underlying MockMvc instance.

For integration tests, i.e. @SpringBootTest with either a defined or random port, a RestTestClient can be injected to target the running server.

Redis Static Master/Replica

Auto-configuration for Static Master/Replica has been added. This feature is only supported by Lettuce.

To use it, provide the list of static nodes using the new spring.data.redis.masterreplica.nodes property.

Redis Observability

The Redis auto-configuration has been improved to auto-configure MicrometerTracing, rather than MicrometerCommandLatencyRecorder. The former operates on the Observation API and provides both metrics and spans.

Dependency Upgrades

Spring Boot 4.0.0-RC1 moves to new versions of several Spring projects:

  • TODO

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

  • TODO

Miscellaneous

Apart from the changes listed above, there have also been lots of minor tweaks and improvements including:

  • You can now set Spring-Boot-Jar-Type to development-tool in your MANIFEST.MF to exclude dependencies from uber jars.

Deprecations in Spring Boot 4.0.0-RC1

  • None

Clone this wiki locally