⭐ New Features
- Add withDefaultRequestConfigCustomizer method to HttpComponentsClientHttpRequestFactoryBuilder #43139
- Fail JsonWriter if duplicate names are detected #43041
- Add JsonObjectDeserializer.nullSafeValue method that accepts a mapper Function #42972
- Support timeout property for GraphQL over SSE #42966
- Improve performance of ConfigurationPropertiesBinder by storing bind handlers on first access #42950
- Improve performance of ConcurrentReferenceCachingMetadataReaderFactory #42949
- Log warning in HikariCheckpointRestoreLifecycle if pool suspension isn't configured #42937
- Remove spring-boot-starter-aop dependency from spring-boot-starter-data-jpa and spring-boot-starter-integration #42934
🐞 Bug Fixes
- Jersey body handling is inconsistent with Spring Webflux and Spring MVC #43209
- Classes are accidentally named "structure logging" instead of "structured logging" #43203
- StructuredLoggingJsonProperties customizer should be a Class reference rather than a String #43202
- Cannot package OCI image when 'docker.io/paketobuildpacks/new-relic' is provided as a buildpack #43171
- Incorrect Type for 'management.endpoints.access.default' defined in additional-spring-configuration-metadata.json #43154
- WebServerPortFileWriter fails when using a portfile without extension #43117
- SslOptions.isSpecified() only returns true if ciphers and enabled protocols are set #43084
- SslHealthIndicator throws NullPointerException when using SslBundle with SslStoreBundle.NONE #43078
- JdkClientHttpRequestFactoryBuilder and JettyClientHttpRequestFactoryBuilder do not set Ciphers or Enabled Protocols #43077
- Root cause of errors is hidden when loading images from archive #43070
- mvn spring-boot:run fails on Windows with "Could Not Find or Load Main Class" when path contains non-ASCII characters #43062
- A
@SpyBean
on the output of a FactoryBean is not reset #43053 - Logback logging system does not process URLs with paths not ending in .xml #42990
- Bean-based conditions do not consider factory beans correctly when determining if they are a candidate #42970
- NPE in bootBuildImage when setting DOCKER_CONTEXT=default #42960
- Warning due to duplicate MockResolver extensions #42957
- HttpHostConnectException is thrown when using buildpacks with Gradle or Maven on Windows #42952
- build-info doesn't support seconds since the epoch from project.build.outputTimestamp #42936
- NPE in OnClassCondition.resolveOutcomesThreaded following thread interruption because firstHalf is null #42926
- Default WebSocketMessageBrokerConfigurer is always overriding custom channel executor #42924
- X-Registry-Auth header sent to Docker Engine API contains field "authHeader" #42915
- ApplicationContextRunner has inconsistent behaviour with duplicate auto-configuration class names #17963
📔 Documentation
- Migrate class references to full javadoc links #43239
- Documentation for 'spring.datasource.type' is misleading #43199
- Update "Upgrading From" section to use "2.x" #43160
- Include spring-boot-loader in API documentation #43153
- Document how and where to add custom GraalVM configuration files #43074
- Rework DataSource configuration examples to separate defining an additional DataSource and defining a DataSource of a different type #43059
- Location of the layers schema is incorrect in the Maven Plugin's examples #43033
- Link to Eclipse setup instructions #42954
- Fix link to Checkpoint and Restore status page #42939
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 6.1.4 #43128
- Upgrade to Byte Buddy 1.15.10 #43097
- Upgrade to Couchbase Client 3.7.5 #43098
- Upgrade to Elasticsearch Client 8.15.4 #43129
- Upgrade to Flyway 10.20.1 #43130
- Upgrade to Groovy 4.0.24 #43099
- Upgrade to Hibernate 6.6.2.Final #43100
- Upgrade to HttpClient5 5.4.1 #43102
- Upgrade to Infinispan 15.0.11.Final #43131
- Upgrade to Jackson Bom 2.18.1 #43103
- Upgrade to Jetty 12.0.15 #43104
- Upgrade to jOOQ 3.19.15 #43105
- Upgrade to Kafka 3.8.1 #43106
- Upgrade to Lettuce 6.4.1.RELEASE #43185
- Upgrade to Logback 1.5.12 #43107
- Upgrade to Lombok 1.18.36 #43186
- Upgrade to Maven Dependency Plugin 3.8.1 #43108
- Upgrade to Maven Failsafe Plugin 3.5.2 #43109
- Upgrade to Maven Surefire Plugin 3.5.2 #43110
- Upgrade to Micrometer 1.14.1 #43187
- Upgrade to Micrometer Tracing 1.4.0 #43120
- Upgrade to MongoDB 5.2.1 #43111
- Upgrade to Netty 4.1.115.Final #43133
- Upgrade to Prometheus Client 1.3.3 #43112
- Upgrade to Pulsar Reactive 0.5.9 #43188
- Upgrade to Reactor Bom 2024.0.0 #43015
- Upgrade to Spring AMQP 3.2.0 #43016
- Upgrade to Spring Authorization Server 1.4.0 #43017
- Upgrade to Spring Batch 5.2.0 #43018
- Upgrade to Spring Data Bom 2024.1.0 #43019
- Upgrade to Spring Framework 6.2.0 #43020
- Upgrade to Spring HATEOAS 2.4.0 #43021
- Upgrade to Spring Integration 6.4.0 #43022
- Upgrade to Spring Kafka 3.3.0 #43023
- Upgrade to Spring LDAP 3.2.8 #43189
- Upgrade to Spring Pulsar 1.2.0 #43024
- Upgrade to Spring RESTDocs 3.0.3 #43025
- Upgrade to Spring Security 6.4.1 #43232
- Upgrade to Spring Session 3.4.0 #43027
- Upgrade to Testcontainers 1.20.4 #43243
- Upgrade to Tomcat 10.1.33 #43134
- Upgrade to Undertow 2.3.18.Final #43166
- Upgrade to WebJars Locator Lite 1.0.1 #43135
❤️ Contributors
Thank you to all the contributors who worked on this release:
@ahoehma, @deki, @izeye, @ngocnhan-tran1996, @nosan, @quaff, and @wickdynex