-
Notifications
You must be signed in to change notification settings - Fork 41.1k
Spring Boot 3.5.0 RC1 Release Notes
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");
}
}
JSON output for ECS structure logging has been updated to use the nested format. This should improve compatibility with the backends that consume the JSON.
See https://github.com/spring-projects/spring-boot/issues/45063 for background
Tip
|
Check the configuration changelog for a complete overview of the changes in configuration. |
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.
Spring Boot now auto-configures a bean named bootstrapExecutor
if it’s not already there.
For that to work, there needs to be a bean named applicationTaskExecutor
in the context, which is the default if you haven’t defined a custom Executor
bean.
This enables bean background initialization out of the box.
As an annotation-based alternative to ServletRegistrationBean
and FilterRegistrationBean
two new annotations have been added.
@ServletRegistration
can be used to register Servlet
, while @FilterRegistration
can be used to register Filter
, as shown in this example:
@Configuration(proxyBeanMethods = false)
class MyConfiguration {
@Bean
@FilterRegistration(name = "my-filter", urlPatterns = "/test/*", order = 0)
MyFilter myFilter() {
return new MyFilter();
}
}
Additionally, the behavior of FilterRegistrationBean
for empty dispatcher types has been adjusted.
Previously, it was possible to pass an empty DispatcherType
set into the setDispatcherTypes
methods, and this empty set would be passed through to the server. Now it’s the same behavior as calling setDispatcherTypes(null)
, which aligns it to the FilterRegistration
annotation.
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
Apart from the changes listed above, there have also been lots of minor tweaks and improvements including:
-
MeterProvider
beans are now automatically configured onOtlpHttpLogRecordExporter
,OtlpHttpSpanExporter
,OtlpGrpcLogRecordExporter
andOtlpGrpcSpanExporter
. -
The
referral
mode for Spring LDAP can be configured with the newspring.ldap.referral
property. -
Customizers for
OtlpHttpSpanExporterBuilder
andOtlpGrpcSpanExporterBuilder
have been added. -
The new property
spring.kafka.consumer.max-poll-interval
can be used to configure Kafka’s maximum delay between poll invocations. -
RECORD_COMPONENT
has been removed as a target from@DefaultValue
, as it wasn’t really necessary. -
The auto-configured
RestClientSsl
bean now builds upon, rather than overwrite, the configuration fromHttpClientProperties
. -
RestClientAutoConfiguration
now applies for reactive web applications that are using virtual threads and have aapplicationTaskExecutor
bean. -
The Auto-configured
OtlpMeterRegistry
now applies any use providedOtlpMetricsSender
bean. -
It is now possible to set histogram-flavor and max-buckets per meter registry
-
The configuration property
spring.mvc.converters.preferred-json-mapper
has been deprecated. It is replaced byspring.http.converters.preferred-json-mapper
. -
The configuration properties
spring.codec.log-request-details
andspring.codec.max-in-memory-size
have been deprecated. They are replaced byspring.http.codecs.log-request-details
andspring.http.codecs.max-in-memory-size
respectively. -
OpenTelemetryLoggingAutoConfiguration
andSdkLoggerProviderBuilderCustomizer
have been moved into theorg.springframework.boot.actuate.autoconfigure.logging.opentelemetry
package. The old classes have been deprecated.