Skip to content

Spring Boot 3.5.0 M2 Release Notes

Phillip Webb edited this page Feb 5, 2025 · 33 revisions

Spring Boot 3.5.0-M2 Release Notes

Upgrading from Spring Boot 3.4

Prometheus Pushgateway

Pushing metrics to a Prometheus Pushgateway now requires io.prometheus:prometheus-metrics-exporter-pushgateway instead of io.prometheus:simpleclient_pushgateway.

The new client’s Pushgateway support may also require a configuration change. If you were using management.prometheus.metrics.export.pushgateway.base-url, replace it with management.prometheus.metrics.export.pushgateway.address and adjust the value to be in the form host:port.

Three new properties have been added in support of the new Pushgateway client:

  • management.prometheus.metrics.export.pushgateway.format

  • management.prometheus.metrics.export.pushgateway.scheme

  • management.prometheus.metrics.export.pushgateway.token

Set the scheme property to https to use SSL when pushing metrics. Set the token property (instead of the existing username and password properties) to use token-based authentication. Set the format property to text to push metrics as text rather than using protobuf.

Minimum Requirements Changes

None.

New and Noteworthy

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

Ignore properties when using spring-boot-configuration-processor

When using the spring-boot-configuration-processor, the META-INF/additional-spring-configuration-metadata.json file can now be used to ignore properties:

{
  "ignored": {
    "properties": [
      {
        "name": "my.age"
      }
    ]
  }
}

This removes my.age from the generated spring-configuration-metadata.json file. Additionally, the information that my.age has been ignored is also recorded in the generated spring-configuration-metadata.json file.

Load properties from environment variables

While it was already possible to load a single property from an environment variable, it’s now possible to load multiple properties from a single environment variable.

For example, the multi-line environment variable MY_CONFIGURATION with this content:

my.var1=value1
my.var2=value2

can now be imported using the env: prefix:

spring.config.import=env:MY_CONFIGURATION

After this, my.var1 and my.var2 are available in the Environment.

This feature supports properties and yaml format. For more details, please see the documentation.

Dependency Upgrades

Spring Boot 3.5.0-M2 moves to new versions of several Spring projects:

TBD

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

TBD

Miscellaneous

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

  • If io.micrometer:micrometer-java21 is on the classpath, a VirtualThreadsMetrics bean is now auto-configured.

  • The java.home system property is no longer used when running in native image.

  • The new property spring.jooq.config can be used to specify an external jOOQ settings.xml file or resource.

  • New factory methods have been added to SslManagerBundle to create a SslManagerBundle from a TrustManagerFactory or from a TrustManager.

  • The logging.structured.json.customizer properties now accepts more than one customizer.

  • A new spring.r2dbc.pool.acquire-retry` property has been added.

  • @ConditionalOnBean now supports generic @Bean return types

  • @ConditionalOnProperty and @ConditionalOnBooleanProperty are now @Repeatable

  • Some unbindable properties with the prefixes spring.datasource.dbcp2, spring.datasource.hikari, spring.datasource.oracleucp and spring.datasource.tomcat have been removed from spring-configuration-metadata.json.

  • The new property spring.mvc.contentnegotiation.default-content-types can be used to configure default content types with Spring MVC.

  • EndpointRequest for both servlet and reactive stacks now supports matching on HTTP method.

Deprecations in Spring Boot 3.5.0-M2

  • Support for SignalFX has been deprecated, following the deprecation in Micrometer.

  • org.springframework.boot.autoconfigure.security.servlet.RequestMatcherProvider has been deprecated to move it to org.springframework.boot.autoconfigure.security.servlet.RequestMatcherProvider

Clone this wiki locally