⭐ New Features
- Change tomcat and jetty runtime modules to starters #48175
- Rename spring-boot-kotlin-serialization to align with the name of the Kotlinx module that it pulls in #48076
🐞 Bug Fixes
- Error properties are a general web concern and should not be located beneath server.* #48201
- With both Jackson 2 and 3 on the classpath,
@JsonTestfails due to duplicate jacksonTesterFactoryBean #48198 - Gradle war task does not exclude starter POMs from lib-provided #48197
- spring.test.webclient.mockrestserviceserver.enabled is not aligned with its module's name #48193
- SslMeterBinder doesn't register metrics for dynamically added bundles if no bundles exist at bind time #48182
- Properties bound in the child management context ignore the parent's environment prefix #48177
- ssl.chain.expiry metrics doesn't update for dynamically registered SSL bundles #48171
- Starter for spring-boot-micrometer-metrics is missing #48161
- Elasticsearch client's sniffer functionality should not be enabled by default #48155
- spring-boot-starter-elasticsearch should depend on elasticsearch-java #48141
- Auto-configuration exclusions are checked using a different class loader to the one that loads auto-configuration classes #48132
- New arm64 macbooks fail to bootBuildImage due to incorrect platform image #48128
- Properties for configuring an isolated JsonMapper or ObjectMapper are incorrectly named #48116
- Buildpack fails with recent Docker installs due to hardcoded version in URL #48103
- Image building may fail when specifying a platform if an image has already been built with a different platform #48099
- Default values of Kotlinx Serialization JSON configuration properties are not documented #48097
- Custom XML converters should override defaults in HttpMessageConverters #48096
- Kotlin serialization is used too aggressively when other JSON libraries are available #48070
- PortInUseException incorrectly thrown on failure to bind port due to Netty IP misconfiguration #48059
- Auto-configured JCacheMetrics cannot be customized #48057
- WebSecurityCustomizer beans are excluded by WebMvcTest #48055
- Deprecated EnvironmentPostProcessor does not resolve arguments #48047
- RetryPolicySettings should refer to maxRetries, not maxAttempts #48023
- Devtools Restarter does not work with a parameterless main method #47996
- Dependency management for Kafka should not manage Scala 2.12 libraries #47991
- spring-boot-mail should depend on jakarta.mail:jakarta.mail-api and org.eclipse.angus:angus-mail instead of org.eclipse.angus:jakarta.mail #47983
- spring-boot-starter-data-mongodb-reactive has dependency on reactor-test #47982
- Support for ReactiveElasticsearchClient is in the wrong module #47848
📔 Documentation
- Removed property spring.test.webclient.register-rest-template is still documented #48199
- Mention support for detecting AWS ECS in "Deploying to the Cloud" #48170
- Revise AWS section of "Deploying to the Cloud" in reference manual #48163
- Fix typo in PortInUseException Javadoc #48134
- Correct section about required setters in "Type-safe Configuration Properties" #48131
- Use since attribute in configuration properties deprecation consistently #48122
- Document EndpointJsonMapper and management.endpoints.jackson.isolated-json-mapper #48115
- Document support for configuring servlet context init parameters using properties #48112
- Some configuration properties are not documented in the appendix #48095
- Clarify how warnings about soon-to-expire SSL certificates are reported #48063
- Document how to use ContextPropagatingTaskDecorator for propagating trace context over thread boundaries #48053
- Document the level of support for the OpenTelemetry APIs #47960
- Document that you need to build with Java 25 for buildpack build-image Graal support #45501
🔨 Dependency Upgrades
- Upgrade to Cassandra Driver 4.19.2 #48184
- Upgrade to DB2 JDBC 12.1.3.0 #48087
- Upgrade to Elasticsearch Client 9.2.1 #48137
- Upgrade to GraphQL Java 25.0 #48034
- Upgrade to Hibernate 7.1.8.Final #48150
- Upgrade to Jackson Bom 3.0.2 #48089
- Upgrade to Jetty 12.1.4 #48120
- Upgrade to Jetty Reactive HTTPClient 4.1.4 #48151
- Upgrade to jOOQ 3.19.28 #48090
- Upgrade to Kafka 4.1.1 #48185
- Upgrade to Logback 1.5.21 #48091
- Upgrade to Micrometer 1.16.0 #47820
- Upgrade to Micrometer Tracing 1.6.0 #47821
- Upgrade to MySQL 9.5.0 #48092
- Upgrade to Native Build Tools Plugin 0.11.3 #48051
- Upgrade to Neo4j Java Driver 6.0.2 #47997
- Upgrade to Prometheus Client 1.4.3 #48093
- Upgrade to Reactor Bom 2025.0.0 #47822
- Upgrade to Spring AMQP 4.0.0 #47823
- Upgrade to Spring Batch 6.0.0 #47834
- Upgrade to Spring Data Bom 2025.1.0 #47824
- Upgrade to Spring Framework 7.0.1 #48168
- Upgrade to Spring GraphQL 2.0.0 #47826
- Upgrade to Spring HATEOAS 3.0.0 #47827
- Upgrade to Spring Integration 7.0.0 #47828
- Upgrade to Spring Kafka 4.0.0 #47829
- Upgrade to Spring LDAP 4.0.0 #47999
- Upgrade to Spring Pulsar 2.0.0 #47830
- Upgrade to Spring RESTDocs 4.0.0 #47831
- Upgrade to Spring Security 7.0.0 #47832
- Upgrade to Spring Session 4.0.0 #48000
- Upgrade to Spring WS 5.0.0 #47833
- Upgrade to Testcontainers 2.0.2 #48152
- Upgrade to Tomcat 11.0.14 #48094
❤️ Contributors
Thank you to all the contributors who worked on this release:
@K-jun98, @TerryTaoYY, @filiphr, @hojooo, @linw-bai, @nosan, @scottfrederick, @stevearmstrong-dev, @stewue, and @vpavic