Skip to content

Spring Boot 3.5.0 M1 Release Notes

Andy Wilkinson edited this page Jan 15, 2025 · 9 revisions

Spring Boot 3.5.0-M1 Release Notes

Upgrading from Spring Boot 3.4

spring-boot-parent

The spring-boot-parent module is no longer published. It provides dependency management for internal dependencies used, for example, in Spring Boot’s own tests. If you were using spring-boot-parent, replace it with dependency management of your own that meets your application’s needs.

Using .enabled and Other Boolean Configuration Properties

Supported values for .enabled properties have been tightened with this release and are now more consistent. Values must now be either true or false.

Previous versions of Spring Boot would sometimes use conditions that considered any value other than false as enabled.

Validation of profile naming

Rules for profile naming have been tightened with this release and are now more consistent. Profiles can now only contain - (dash), _ (underscore), letters and digits. Additionally, Profiles are not allowed to start or end with - or _.

Minimum Requirements Changes

None.

New and Noteworthy

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

Task decoration for scheduled tasks

If a TaskDecorator bean is present, it is associated to scheduled tasks. ThreadPoolTaskSchedulerBuilder has been updated so that it is applied for programmatic schedulers created by the auto-configured builder.

Vibur Connection Pool

Support for configuring a Vibur DBCP connection pool using DataSourceBuilder has been added. Dependency management has also been updated to cover org.vibur:vibur-dbcp.

Redis Improvements

Add support for configuring ReadFrom using the spring.data.redis.from property.

Dependency Upgrades

Spring Boot 3.5.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:

  • The application_name property of the Postgres docker container is now configured by default using spring.application.name.

  • The auto-configuration for Jackson retains modules that have been added prior to its execution, rather than overwriting them.

  • Tomcat connector’s max parameter count can be configured using the server.tomcat.max-parameter-count property.

  • Actuator’s process info contributor now contains virtual thread information when running on JDK 24 or later.

  • The ECS structured logging format now adds Logback and Log4j’s markers in the tags field.

  • Spring Boot now installs a Logback OnErrorConsoleStatusListener to print error messages during Logback initialization to the console.

  • The 'error' entry returned from ErrorAttributes now wraps all MessageSourceResolvable instances to ensure safe JSON serialization.

  • Zipkin auto-configuration now uses ZipkinHttpClientSender by default, if the HttpClient class is unavailable URLConnectionSender is used.

  • A new @ConditionalOnBooleanProperty annotation has been introduced.

  • Empty passwords are now supported when using Bitnami’s PostgreSQL image with Docker Compose. Set ALLOW_EMPTY_PASSWORD in the container’s environment to enable the support.

  • The new property management.server.accesslog.prefix can now be used to customize the access log prefix for the management server.

  • The AWS Advanced JDBC Wrapper is now auto-detected from jdbc:aws-wrapper:… URLs, removing the need to configure spring.datasource.driver-class-name.

Deprecations in Spring Boot 3.5.0-M1

  • ConditionalOutcome.inverse(…​) has been deprecated for removal since it doesn’t generate a useful message

Clone this wiki locally