-
Notifications
You must be signed in to change notification settings - Fork 41.6k
Spring Boot 3.2.0 M2 Release Notes
For changes in earlier milestones, please refer to:
|
Tip
|
Check the configuration changelog for a complete overview of the changes in configuration. |
Some synchronized blocks have been refactored to use ReentrantLock instead.
A virtual thread executor is now auto-configured for the RabbitMQ listener if virtual threads are enabled.
A virtual thread executor is now auto-configured for the Kafka listener if virtual threads are enabled.
A SimpleAsyncTaskExecutorBuilder is now available in the application context and can be used to build a SimpleAsyncTaskExecutor. SimpleAsyncTaskExecutorCustomizer beans can be used to customize the built SimpleAsyncTaskExecutor. If virtual threads are enabled, the builder is auto-configured to use them.
A SimpleAsyncTaskSchedulerBuilder is now available in the application context and can be used to build SimpleAsyncTaskScheduler.
SimpleAsyncTaskSchedulerCustomizer beans can be used to customize the built SimpleAsyncTaskScheduler. If virtual threads are enabled, the builder is auto-configured to use them.
When virtual threads are enabled, the taskScheduler bean will be a SimpleAsyncTaskScheduler configured to use virtual threads.
The spring.task.scheduling.thread-name-prefix property and spring.task.scheduling.simple. properties are applied.
Other spring.task.scheduling. properties are ignored as they are specific to a pool-based scheduler.
Observability for R2DBC has been added. To enable it, include the io.r2dbc:r2dbc-proxy dependency in your project.
The auto-configuration for OpenTelemetry has been improved. If there’s a bean of type SdkLoggerProvider or SdkMeterProvider in the context, it will automatically get registered on the OpenTelemetry bean.
Additionally, OpenTelemetry’s Resource is now exposed as a bean, and there’s a new configuration property management.opentelemetry.resource-attributes which configures the resource attributes.
The default CNB builders used when building images with the Maven and Gradle plugin have changed.
When the GraalVM plugin is applied to the build, the new default builder is paketobuildpacks:builder-jammy-tiny.
Otherwise, the new default builder is paketobuildpacks:builder-jammy-base.
See the Paketo documentation for more information on these builders.
The previous default builders included a run image based on Ubuntu 18.04, and the new defaults include a run image based on Ubuntu 22.04. This means that any images built with the new defaults will be based on Ubuntu 22.04.
The build and launch caches used by CNB builders and buildpacks can now be configured to use bind mounts instead of named volumes. This feature has been requested by users of BitBucket CI, which do not allow volumes to be accessed from CI pipelines. See the Maven and Gradle documentation for more information and examples.
Auto-configuration for JdbcClient has been added, based on the presence of a NamedParameterJdbcTemplate.
If the latter is auto-configured, properties of spring.jdbc.template.* are taken into account.
The WebSocketServerSpec used by the auto-configuration can be customized using properties of the spring.rsocket.server.spec namespace.
If an AuthTokenManager bean is defined, it will be used for authentication with Neo4j.
Such a bean takes precedence over the spring.neo4j.authentication.* properties.
An AuthTokenManager bean is ignored if custom Neo4jConnectionDetails are defined, for example for a service connection to a Testcontainers or Docker Compose managed database.
Spring Boot 3.2.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:
-
Elasticsearch Client 8.9.0
-
Flyway 9.21.2
-
JUnit 5.10.0
-
Micrometer 1.11.0-M2
-
Micrometer Tracing 1.1.0-M2
-
SnakeYAML 2.1
Apart from the changes listed above, there have also been lots of minor tweaks and improvements including:
-
Add support for RabbitMQ container
forceStopproperty. -
Add support for Kafka MessageListenerContainer
changeConsumerThreadNameproperty. -
Auto-configure
Function<MessageListenerContainer, String>bean to Kafka MessageListenerContainer’sthreadNameSupplier. -
@ConditionalOnVirtualThreadshas been superseded by@ConditionalOnThreading(Threading.VIRTUAL). -
When using GraalVM, resource hints for
messages.propertiesandmessages_*.propertiesare now provided automatically.
-
The configuration property
management.otlp.metrics.export.resource-attributeshas been deprecated in favor of the newmanagement.opentelemetry.resource-attributes. -
TaskExecutorBuilderhas been deprecated in favor ofThreadPoolTaskExecutorBuilder. -
TaskSchedulerBuilderhas been deprecated in favor ofThreadPoolTaskSchedulerBuilder.