Skip to content

Spring Boot 3.3.0 M2 Release Notes

Phillip Webb edited this page Nov 13, 2024 · 1 revision

Spring Boot 3.3.0-M2 Release Notes

For changes in earlier milestones, please refer to:

Upgrading from Spring Boot 3.2

Jersey Observability

Micrometer 1.13 has deprecated its Jersey support in favor of Jersey’s jersey-micrometer module. If you application uses Jersey metrics, add a dependency on org.glassfish.jersey.ext:jersey-micrometer when upgrading.

To support observations with Jersey, the MetricsApplicationEventListener has been replaced with a ObservationApplicationEventListener. If you were using a JerseyTagsProvider to customize the tags, you’ll now need to implement a JerseyObservationConvention bean to do that.

Minimum Requirements Changes

Native Build Tools

If you’re using the Native Build Tools to build your project with GraalVM, make sure you’re using at least version 0.10.0 of the plugin. Maven users should get the correct version automatically when using the Spring Boot parent.

Gradle users should update the plugin version in the plugins block:

plugins {
  // ...
  id 'org.graalvm.buildtools.native' version '0.10.0'
  // ...
}

See #39068 for details.

New and Noteworthy

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

Service Connections

Support for Apache ActiveMQ Artemis

Service connection support for Apache ActiveMQ Artemis has been added. The Testcontainers support works with the ArtemisContainer container, the Docker Compose support works with the apache/activemq-artemis image.

Support for the official ActiveMQ Classic images

The ActiveMQ service connection now supports the apache/activemq-classic docker image and the ActiveMQContainer testcontainer.

Support for LDAP

Service connection support for LDAP with the osixia/openldap container has been added

Bitnami Container Images

The Spring Boot support for Docker Compose will detect and configure containers from Bitnami in addition to official images for several of the supported technologies, including Cassandra, Elasticsearch, MariaDB, MySQL, MongoDB, Neo4j, PostgreSQL, RabbitMQ, and Redis. See the updated reference documentation for more information.

Observability

Spring Pulsar

The properties spring.pulsar.listener.observation-enabled and spring.pulsar.template.observations-enabled changed their default value from true to false. This has been done to unify the observation-enabled properties, all of which now default to false. If you were relying on Pulsar observations and didn’t enable them explicitly, add the properties spring.pulsar.listener.observation-enabled=true and spring.pulsar.template.observations-enabled=true to your configuration to restore the old behavior.

Brave and Zipkin

Brave has been updated to 6.0, and Zipkin to 3.0. With that upgrade, the Zipkin support in Spring Boot got new features, like specifying the encoding in which data is reported to the Zipkin API. See #39049 for details.

A new JDK HttpClient based Zipkin sender has been implemented. This sender only depends on the JDK and will be the default sender in Spring Boot 3.5.0, superseding the WebClient and RestTemplate sender implementations.

Virtual Threads

If a AsyncTaskExecutor is available in the context, it is now registered on the websocket ChannelRegistration. If using virtual threads, this will usually be a virtual threads enabled SimpleAsyncTaskExecutor, making Websockets virtual thread capable.

Batch Transaction Manager

A @BatchTransactionManager annotation has been introduced to make it easier to configure Spring Batch to use a custom transaction manager. See the updated documentation for more information.

Miscellaneous

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

  • The new reactive sessions actuator endpoint can now return sessions for a given username.

  • The environment’s default profiles are now included in the env actuator endpoint’s response.

  • Added the new property spring.liquibase.ui-service to specify the default UI service logger used by Liquibase.

  • Added the new property spring.security.saml2.relyingparty.registration.*.name-id-format to specify the NameID format of a SAML registration.

  • Added the new property server.mime-mappings which allows to configure custom MIME type mappings.

Deprecations in Spring Boot 3.3.0-M2

  • ZipkinRestTemplateBuilderCustomizer and ZipkinWebClientBuilderCustomizer in favor of the new ZipkinHttpClientBuilderCustomizer.

None.

Clone this wiki locally