Skip to content

Spring Boot 3.3.0 M1 Release Notes

Andy Wilkinson edited this page Jan 19, 2024 · 32 revisions

Spring Boot 3.3.0-M1 Release Notes

Upgrading from Spring Boot 3.2

Minimum Requirements Changes

None.

Dependency Management for Dropwizard Metrics Removed

Dependency management for Dropwizard Metrics has been removed. Spring Boot does not depend directly upon Dropwizard Metrics and, therefore, does not require a specific version. If your application depends on Dropwizard Metrics directly, update your build configuration to specify a version that meets its needs.

New and Noteworthy

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

Observability Improvements

Observations can now be enabled for the simple, direct and stream listener and on the RabbitTemplate via properties.

Support for the Micrometer @SpanTag annotation has been added.

Added support for tagged fields for both Brave and OpenTelemetry. Support for local fields has been added for Brave.

Added a process InfoContributor, which can be enabled with management.info.process.enabled=true.

If no application name is explicitly set, unknown_service is now used for OpenTelemetry. This aligns the Spring Boot default to the OpenTelemetry specification.

Apache Pulsar Improvements

There are now properties to configure cluster-level failover for Pulsar under the spring.pulsar.client.failover namespace.

Spring Security Improvements

A JwtAuthenticationConverter (or a ReactiveJwtAuthenticationConverter) is now auto-configured if one of the properties is set:

  • spring.security.oauth2.resourceserver.jwt.authority-prefix

  • spring.security.oauth2.resourceserver.jwt.principal-claim-name

  • spring.security.oauth2.resourceserver.jwt.authorities-claim-name

Virtual threads

The Undertow web server is now using virtual threads, if enabled.

Dependency Upgrades

Spring Boot 3.3.0-M1 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:

Miscellaneous

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

  • spring.config.activate.on-cloud-platform=none will now match when the active cloud platform is null.

  • Added a configuration option for "path" field inclusion in error responses. This can be controlled by the server.error.include-path property. It defaults to always.

  • The WebFlux DefaultErrorAttributes now use request.requestPath().value() to populate path error attribute.

  • Added the property server.tomcat.threads.max-queue-capacity to configure the maximum queue size for the Tomcat web server connector.

  • The configuration processor now checks the additional-spring-configuration-metadata.json for superfluous keys and fails if it encounters any.

  • Added a property named spring.task.execution.pool.shutdown.accept-tasks-after-context-close to control if the ThreadPoolTaskExecutor accepts tasks after the context shutdown has been initiated.

  • Added the property server.reactive.session.max-sessions to control the number of maximum sessions when using WebFlux.

  • ExecutionContextSerializer beans are now automatically applied to the Spring Batch configuration. If none is provided, DefaultExecutionContextSerializer is used.

  • The started log messages produced by the four supported web servers (Jetty, Netty, Tomcat, and Undertow) are now more consistent.

  • Added client-id and subscription-durable properties for JMS connections.

  • If a class implements multiple servlet interfaces, like Filter or Servlet, it will now be registered for all of the interfaces (e.g. one registration for a filter and one for a servlet).

Deprecations in Spring Boot 3.3.0-M1

None.

Clone this wiki locally