-
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
The TestRestTemplate
now uses the same follow redirects settings as the regular RestTemplate
.
The HttpOption.ENABLE_REDIRECTS
option has also been deprecated.
If the new default settings causes issues with your tests, you can use the TestRestTemplate.withRedirects(…)
method to pick an alternative follow redirects strategy.
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.
-
Additional properties have been added under
logging.structured.json.context
to allow context data to not be logged, or to be logged in a different location.
-
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.