Skip to content

Spring Boot 3.5.0 M3 Release Notes

Moritz Halbritter edited this page Mar 21, 2025 · 30 revisions

Spring Boot 3.5.0-M3 Release Notes

Upgrading from Spring Boot 3.4

Native test with Maven

The nativeTest profile has been harmonized with native to make it friendly for multi-modules project. Native test execution will not occur unless the Spring Boot and Native Build tools plugin are defined in the project. This is already the case for the native profile.

See the documentation for more details.

Groovy Template Configuration Properties

The spring.groovy.template.configuration. properties have been deprecated in favor of new and existing spring.groovy.template. properties. See the Spring-Boot-3.5.0-M3-Configuration-Changelog[configuration changelog] for further details.

Minimum Requirements Changes

None.

New and Noteworthy

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

Testcontainers and Docker Compose support for lldap/lldap containers

Containers using the lldap/lldap image can now be used with Docker Compose and Testcontainers. Testcontainers supports this image with LLdapContainer.

OpenTelemetry

Spring Boot now supports the OTEL_RESOURCE_ATTRIBUTES and OTEL_SERVICE_NAME environment variables. Resource attributes configured through the configuration property taking precedence over those from the environment variables.

Additionally, support for the service.namespace resource attribute has been added. The value of this attribute is read from the spring.application.group configuration property.

Support for the service.group resource attribute has been deprecated and will be removed in a future release.

It’s now possible to define a custom BatchSpanProcessor bean.

The span export can now be configured with newly added properties under the management.tracing.opentelemetry.export prefix.

Spring Batch

The JobParametersConverter used by Spring Batch can now be customised by defining a bean of that type. When no such bean is defined the DefaultJobParametersConverter will be used as before.

The new spring.batch.jdbc.validate-transaction-state property can be used to control whether transaction state is validated. The default behavior is unchanged and transaction state will be validated.

Miscellaneous

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

  • Logging for Cloud Native Buildpacks integration has been improved.

  • The new property spring.data.mongodb.protocol has been added to allow the MongoDB protocol to be customized.

  • Logback and Log4j2 now respect the console charset.

  • The transport-specific configuration properties for GraphQL have been reorganized. spring.graphql.path is now spring.graphql.http.path and spring.graphql.sse.timeout is replaced by spring.graphql.http.sse.timeout.

  • Support for Zipkin’s URLConnectionSender has been removed.

  • Removed the default value of OtlpMetricsProperties.url. However, this should lead to no visible changes as Micrometer then provides the default value.

  • The auto-configured JdbcTemplate can be further customized using additional configuration properties for ignoreWarnings, skipResultsProcess, skipUndeclaredResults, and resultsMapCaseInsensitive.

  • In most cases, a DataSource can now be auto-configured without spring-jdbc on the classpath. spring-jdbc is still required to use an embedded database without a connection pool.

  • The property server.tomcat.use-apr now defaults to never. If you want to use Tomcat’s APR, set the property to when-available or always.

  • A PollerMetadataCustomizer has been added to customize Spring Integration’s PollerMetadata.

  • Garbage collector information has been added to the actuator process info.

  • Removed the readonly flag from the BuildImage Maven mojo to remove Maven warnings.

  • The SameSite attribute can be omitted from the session cookie by setting server.servlet.session.cookie.same-site or server.reactive.session.cookie.same-site to omitted.

Deprecations in Spring Boot 3.5.0-M3

  • org.springframework.boot.autoconfigure.security.oauth2.client.ClientsConfiguredCondition in favor of @org.springframework.boot.autoconfigure.security.oauth2.client.ConditionalOnOAuth2ClientRegistrationProperties

  • org.springframework.boot.autoconfigure.security.oauth2.resource.IssuerUriCondition in favor of @org.springframework.boot.autoconfigure.security.oauth2.resource.ConditionalOnIssuerLocationJwtDecoder

  • org.springframework.boot.autoconfigure.security.oauth2.resource.KeyValueCondition in favor of @org.springframework.boot.autoconfigure.security.oauth2.resource.ConditionalOnPublicKeyJwtDecoder

  • org.springframework.boot.devtools.autoconfigure.OnEnabledDevToolsCondition in favor of @org.springframework.boot.devtools.autoconfigure.ConditionalOnEnabledDevTools

Clone this wiki locally