⭐ New Features
- Remove deprecated micrometer.observations.annotations.enabled #44320
- Auto-configure CqlTemplate and ReactiveCqlTemplate #44291
- Auto-configure an ObjectDirectoryMapper bean and configure LdapTemplate to use it #44290
- Add TWENTY_FOUR to JavaVersion enum #44210
- Add property to configure Spring Kafka's authExceptionRetryInterval #44199
- Rename management.server.accesslog.prefix to make is clear that it does not affect Netty #44196
- Mappings Endpoint support web-servlet router funtion #44172
- Add property to configure Spring MVC default content types #44040
- ConversionServiceDeducer should detect more bean types and support lambdas #44018
- Add 'spring.r2dbc.pool.acquire-retry' property #44017
- Ignore unbindable DataSource properties #43988
- Deprecate SignalFX support #43962
- Use isXxx() instead of getXxx() for boolean property #43934
- Register Logback OnErrorConsoleStatusListener when using custom Logback file #43931
- Update PrometheusPushGatewayManager to use the new Prometheus client #43923
- Allow stacktrace processing when using structured logging #43864
- Auto-configure VirtualThreadMetrics #43852
- Remove usage of java.home system property in native image #43517
- Add support for multiple StructuredLoggingJsonMembersCustomizers #43368
- Add the ability to trigger a Quartz job on-demand through an Actuator endpoint #43086
- Make it easier to provide custom TrustManagers in SslManagerBundle #43064
- Support loading config files (YAML and properties) embedded in env vars via spring.config.import #41609
- Consider how to provide SSL from ConnectionDetails #41137
- Write TraceId in HTTP Response headers #40857
- Make it easier to add a SanitizingFunction to mask properties with specific names #39243
- Provide a configuration property for configuring an external jOOQ settings file #38778
- Add ability to match Endpoint requests by HTTP method #29596
- Add ConditionalOnBean support for generic
@Bean
return types #29500 - Support lambda based converters by parsing bean method signature generics #22885
- Make
@ConditionalOnProperty
and@ConditionalOnBooleanProperty
@Repeatable
#2541 - Provide a mechanism to hide properties in the metadata #2421
🐞 Bug Fixes
- Console output may be lost when using Log4j2 with something that replaces System.out #44381
- Maven plugin does not consistently use ArgFile for classpath argument on Windows #44329
- Non-default DataSource candidates are not considered in H2ConsoleAutoConfiguration #44322
- Reactive Jetty web server does not fail fast when configured to use a server name bundle which Jetty does not support #44321
- When web server application context refresh fails, the original failure is lost if stopping or destroying the web server throws an exception #44318
- View resolver for Thymeleaf should back off if spring-webmvc is not present #44297
- WebServer is not destroyed when ReactiveWebServerApplicationContext refresh fails #44295
- Banner placeholder and defaults do not work during development #44256
- Metrics and health do not include non-default candidate beans #44248
- Reactive Jetty, Tomcat, and Undertow management servers do not apply management_ prefix to their access logs #44197
- Mustache templates return with ISO-8859-1 charset rather than UTF-8 in Content-Type response header #44194
- java.lang.ClassCastException when using default management security with WebFlux and health probes enabled #44192
- Servlet EndpointRequest doesn't match web server namespace correctly #44190
- Logback configuration that relies on inner-classes does not work in a native image #44026
- IllegalStateException: Unable to register SSL bundle after 3.3.8 or 3.4.2 #43990
📔 Documentation
- Document that auto-configuration classes should be identified using their binary names #44304
- Correct typo in MVC security when explaining when UserDetailsService auto-configuration will back off #44302
- Link to JarLauncher's javadoc #44171
- When using observability annotations, recommend that care is taken to avoid double instrumentation #44146
- Fix typo in Running Your Application #44036
- Document Kubernetes preStop handler when using a Docker image without a shell #44023
- Source snippet in Developing Your First Spring Boot Application section uses the root package #43984
- Correct the location of MyApplication.java in "Developing Your First Spring Boot Application" #43976
- Add links to Jackson Javadoc #43972
- Warn that some Quartz database schema scripts must be modified before use #43959
🔨 Dependency Upgrades
- Upgrade to Brave 6.1.0 #44335
- Upgrade to Byte Buddy 1.17.1 #44282
- Upgrade to Cassandra Driver 4.19.0 #44270
- Upgrade to Commons Codec 1.18.0 #44073
- Upgrade to Commons Pool2 2.12.1 #44074
- Upgrade to Couchbase Client 3.7.8 #44271
- Upgrade to DB2 JDBC 12.1.0.0 #44075
- Upgrade to Elasticsearch Client 8.17.2 #44226
- Upgrade to Flyway 11.3.3 #44371
- Upgrade to Groovy 4.0.25 #44078
- Upgrade to Gson 2.12.1 #44079
- Upgrade to Hamcrest 3.0 #44080
- Upgrade to Hibernate 6.6.8.Final #44336
- Upgrade to HttpClient5 5.4.2 #44082
- Upgrade to HttpCore5 5.3.3 #44083
- Upgrade to Infinispan 15.1.5.Final #44084
- Upgrade to Json-smart 2.5.2 #44238
- Upgrade to Lettuce 6.5.4.RELEASE #44373
- Upgrade to Liquibase 4.31.1 #44337
- Upgrade to MariaDB 3.5.2 #44239
- Upgrade to Maven Clean Plugin 3.4.1 #44350
- Upgrade to Micrometer 1.15.0-M2 #44155
- Upgrade to Micrometer Tracing 1.5.0-M2 #44156
- Upgrade to MongoDB 5.3.1 #44089
- Upgrade to Native Build Tools Plugin 0.10.5 #44183
- Upgrade to Neo4j Java Driver 5.28.1 #44198
- Upgrade to Netty 4.1.118.Final #44228
- Upgrade to OpenTelemetry 1.47.0 #44229
- Upgrade to Oracle Database 23.7.0.25.01 #44230
- Upgrade to Prometheus Client 1.3.6 #44284
- Upgrade to Pulsar 4.0.2 #44091
- Upgrade to R2DBC MySQL 1.3.2 #44092
- Upgrade to Rabbit AMQP Client 5.25.0 #44231
- Upgrade to Rabbit Stream Client 0.22.0 #44093
- Upgrade to Reactor Bom 2024.0.3 #44157
- Upgrade to REST Assured 5.5.1 #44285
- Upgrade to RSocket 1.1.5 #44094
- Upgrade to Selenium HtmlUnit 4.28.0 #44095
- Upgrade to SnakeYAML 2.4 #44338
- Upgrade to Spring AMQP 3.2.3 #44279
- Upgrade to Spring Authorization Server 1.5.0-M1 #44374
- Upgrade to Spring Data Bom 2025.0.0-M1 #44159
- Upgrade to Spring Framework 6.2.3 #44160
- Upgrade to Spring GraphQL 1.3.4 #44161
- Upgrade to Spring HATEOAS 2.5.0-M1 #44169
- Upgrade to Spring Integration 6.5.0-M2 #44162
- Upgrade to Spring Kafka 3.3.3 #44163
- Upgrade to Spring LDAP 3.3.0-M2 #44164
- Upgrade to Spring Pulsar 1.2.3 #44165
- Upgrade to Spring Security 6.5.0-M2 #44166
- Upgrade to Spring Session 3.4.2 #44167
- Upgrade to SQLite JDBC 3.49.1.0 #44351
- Upgrade to Testcontainers 1.20.5 #44375
- Upgrade to Testcontainers Redis Module 2.2.4 #44376
- Upgrade to Thymeleaf Layout Dialect 3.4.0 #44097
- Upgrade to Tomcat 10.1.36 #44339
- Upgrade to UnboundID LDAPSDK 7.0.2 #44099
- Upgrade to Zipkin Reporter 3.5.0 #44334
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Puppy4C, @Ru311, @VladislavSevruk, @ashishkujoy, @big-cir, @izeye, @jearton, @ngocnhan-tran1996, @nosan, @onobc, @quaff, @timotheeandres, and @viviel