Skip to content

Spring Boot 3.5.0 RC1 Release Notes

Moritz Halbritter edited this page Apr 4, 2025 · 23 revisions

Spring Boot 3.5.0-RC1 Release Notes

Upgrading from Spring Boot 3.4

Auto-configured TaskExecutor Names

Thus far, Spring Boot auto-configures a TaskExecutor with the taskExecutor and applicationTaskExecutor bean names. As of this release, only the applicationTaskExecutor bean name is provided. Code that is requesting the auto-configured Executor by name should be adapted to use applicationTaskExecutor.

If you relied on this behaviour and cannot change it immediately, the alias can be added using a BeanFactoryPostProcessor, as shown in the following example:

@Configuration
public class MyConfiguration {

	@Bean
    static BeanFactoryPostProcessor taskExecutorAliasBeanFactoryPostProcessor() {
        return (beanFactory) -> beanFactory.registerAlias("applicationTaskExecutor", "taskExecutor");
    }

}

Minimum Requirements Changes

None.

New and Noteworthy

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

AsyncTaskExecutor with custom Executor

If an Executor bean is present, Spring Boot can now be configured to auto-configure an AsyncTaskExecutor anyway. To do so, set the spring.task.execution.mode property to force.

When running in this mode, it makes sure that all integrations, including regular @Async processing uses the auto-configured executor, unless an AsyncConfigurer bean is defined.

ClientHttpConnector Builder and Configuration Properties

TODO

Annotations to register Filter and Servlet

As an annotation-based alternative to ServletRegistrationBean and FilterRegistrationBean two new annotations have been added. @ServletRegistration can be used to register Servlet`s, while `@FilterRegistration can be used to register `Filter`s, as shown in this example:

@Configuration(proxyBeanMethods = false)
class MyConfiguration {

    @Bean
    @FilterRegistration(name = "my-filter", urlPatterns = "/test/*", order = 0)
    MyFilter myFilter() {
        return new MyFilter();
    }

}
---


=== Dependency Upgrades
Spring Boot 3.5.0-RC1 moves to new versions of several Spring projects:

TBD

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

TBD

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

* `MeterProvider` beans are now automatically configured on `OtlpHttpLogRecordExporter`, `OtlpHttpSpanExporter`, `OtlpGrpcLogRecordExporter` and `OtlpGrpcSpanExporter`.
* The `referral` mode for Spring LDAP can be configured with the new `spring.ldap.referral` property.
* Customizers for `OtlpHttpSpanExporterBuilder` and `OtlpGrpcSpanExporterBuilder` have been added.
* The new property `spring.kafka.consumer.max-poll-interval` can be used to configure Kafka's maximum delay between poll invocations.



== Deprecations in Spring Boot 3.5.0-RC1

* The configuration property `spring.mvc.converters.preferred-json-mapper` has been deprecated. It is replaced by `spring.http.converters.preferred-json-mapper`.
* The configuration properties `spring.codec.log-request-details` and `spring.codec.max-in-memory-size` have been deprecated. They are replaced by `spring.http.codecs.log-request-details` and `spring.http.codecs.max-in-memory-size` respectively.
Clone this wiki locally