Skip to content

Spring Boot 3.2.0 M3 Release Notes

Andy Wilkinson edited this page Sep 29, 2023 · 25 revisions

Spring Boot 3.2.0-M3 Release Notes

For changes in earlier milestones, please refer to:

Upgrading from Spring Boot 3.1

Jetty 12

Spring Boot now supports Jetty 12. Jetty 12 supports the Servlet 6.0 API, aligning it with both Tomcat and Undertow. Previously, if you were using Jetty with Spring Boot 3.x, the Servlet API had to be downgraded to 5.0. This is no longer necessary. Remove any override of the Servlet API version when upgrading.

H2 2.2

Spring Boot now uses H2 2.2 by default. To continue using a database from earlier version of H2 it may be necessary to perform a data migration. Before upgrading, export the database using the SCRIPT command. Create an empty database with the new version of H2 and then import the data using the RUNSCRIPT command.

Minimum Requirements Changes

None.

New and Noteworthy

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

Spring for Apache Pulsar Support

Spring Boot now includes auto-configuration support and starter POMs for the Spring for Apache Pulsar project. See the updated reference documentation for full details.

Broader Exemplar Support in Micrometer 1.12

Micrometer 1.12 includes a feature to broaden the exemplar support that requires Prometheus 2.43 or later. If you’re using a Prometheus version older than 2.43.0 and you’re using Micrometer Tracing, please upgrade to Prometheus >= 2.43.0, otherwise metrics won’t show up anymore.

Virtual Host Support for RabbitMQ Stream

Virtual host support for RabbitMQ Stream has been added. The virtual host for RabbitMQ Stream automatically uses the configured virtual host for RabbitMQ if not set explicitly. To use a specific virtual host for RabbitMQ Stream, set spring.rabbitmq.stream.virtual-host.

Docker Compose Support for Neo4j

Spring Boot’s Docker Compose integration now supports Neo4j. You must configure the NEO4J_AUTH environment variable in your compose YAML to disable authentication (a value of none) or to set a password for the neo4j user (a value of neo4j/your-password).

Virtual threads

Spring Data Redis' ClusterCommandExecutor will now use virtual threads if enabled.

Docker Image Building

Build Workspace Configuration

The temporary build workspace used by CNB builders and buildpacks can now be configured to use a bind mount or a custom named volumes. See the Maven and Gradle documentation for more information and examples.

Security Options Configuration

Security options that are applied to the CNB builder container can now be customized to support Docker environments that do now allow the default Linux security option label=disable to be used. See the Maven and Gradle documentation for more information.

Dependency Upgrades

Spring Boot 3.2.0-M3 moves to new versions of several Spring projects:

  • Spring AMQP 3.1.0

  • Spring Authorization Server 1.2.0-M1

  • Spring Batch 5.1.0-M3

  • Spring Data Bom 2023.1.0-M3

  • Spring Framework 6.1.0-RC1

  • Spring GraphQL 1.2.3

  • Spring Integration 6.2.0-M3

  • Spring Kafka 3.1.0-M1

  • Spring LDAP 3.2.0

  • Spring Pulsar 1.0.0-M2

  • Spring Retry 2.0.3

  • Spring Security 6.2.0

  • Spring WS 4.0.6

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

  • Elasticsearch Client 8.10.1

  • Flyway 9.22.1

  • GraphQL Java 21.1

  • Hibernate 6.3.1.Final

  • MariaDB 3.2.0

  • Micrometer 1.12.0-M3

  • Micrometer Tracing 1.2.0-M3

  • SnakeYAML 2.2

Miscellaneous

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

  • Logging has been reduced when the handler for the welcome page receives an invalid Accept header, falling back to accepting all MIME types.

  • Dependency management for Kotlin Serialization is now provided.

  • The auto-configured JdbcClient bean is now available in tests using @JdbcTest and @DataJpaTest.

  • RestClientBuilderConfigurer, that can be used to apply Spring Boot’s defaults to a RestClient.Builder, has been added.

  • spring.application.name is now used for OpenTelemetry’s service.name if no service.name has been set explicitly.

  • The new property spring.servlet.multipart.strict-servlet-compliance sets whether multipart handling is only used for multipart/form-data requests.

  • There’s now connection details support for OTLP metrics and traces. A connection details bean is automatically created if using Testcontainers or Docker Compose with the otel/opentelemetry-collector-contrib image.

Clone this wiki locally