Spring Boot's Gradle plugin no longer automatically configures gRPC when the Protobuf plugin is applied. This behavior caused problems for those using Protobuf without gRPC. To opt in to the configuration of gRPC, configure the protobuf extension with the grpc plugin using an empty block. The Spring Boot Gradle plugin will then automatically configure the use of protoc-gen-grpc-java as before. #50822
🐞 Bug Fixes
Kafka consumer-specific security protocol is not taken into account #51369
Structured logging: a failed JSON encode corrupts the next log event written on the same thread #51156
Micrometer registries pin the application context #51135
Temporary file is not deleted when ExportedImageTar construction fails #51132
Metadata annotation processor ignores getter-level @NestedConfigurationProperty for records #51098
spring-boot-h2-console pulls servlet-api as transitive dependency #51095
PropertiesLauncher does not log nested archive paths #51089
Methods that return the result of Map#remove are not declared with a @Nullable return type #51087
NativeImageResourceProvider flattens Flyway migration paths in subdirectories #50964
Fix ordering of Kotlinx Serialization CodecCustomizer #50961
JarFile is not closed when finding main class from archive #50959
Application-managed JUL bridge handler should only be removed if installed #50950
CloudFoundry reactive auto-configuration should not require a WebClient.Builder bean to be defined #50944
Context refresh fails on reactive Cloud Foundry when using Actuator without spring-boot-health #50942
Resources are not cleaned up when resolving an image that is not yet present in the builder #50941
GraphQlWebMvcAutoConfiguration should apply customizers in order #50914
Auto-configured RedisMessageListenerContainer does not use virtual threads when spring.threads.virtual.enabled is true #50884
Context refresh fails when using Actuator on Jersey without spring-boot-health #50872
Context refresh fails on Cloud Foundry when using Actuator without spring-boot-health #50871
IllegalStateException when binding properties to a @Validated class that contains a map whose value type is a wildcard #50856
High number of connections due to Mongo health indicator #50852
Inconsistent handling of empty string values of spring.security.oauth2.resourceserver.jwt issuer-uri and jwk-set-uri #50849
Return type nullability of ApplicationContextAssert's getBean methods does not indicate that bean may be null #50845
PropertiesWebClientHttpServiceGroupConfigurer has highest precedence, preventing other configurers from being ordered ahead of it #50843
Exposing gRPC test server port should backoff if gRPC is not present #50825
JpaBaseConfiguration#entityManagerConfiguration can cause a dependency loop on beans declaring AsyncTaskExecutor #50801
spring.grpc.server.health.include-overall-health is not taken into account #50799
Setting 'server.servlet.session.cookie.partitioned' to false still emits the 'Partitioned' cookie attribute #50790
Managed version of Prometheus Client is not aligned with Micrometer's micrometer-registry-prometheus #50780
Map properties bound from empty strings fail with ConverterNotFoundException #50773
Protobuf Common Protos should not be a managed dependency #50772
An application that depends on spring-boot-security-oauth2-resource-server may fail to start with a ClassNotFoundException when Reactor is on the classpath but WebFlux is not #50764
W3CHeaderParser's decoding is not compliant with RFC 3986 #50650
📔 Documentation
Description of spring.graphql.websocket.connection-init-timeout does not render correctly in the reference guide #51348
spring.profiles.group should have a 'spring-profile-name' hint provider #51284
Remove reference to removed InfluxDB auto-configuration #51176
Use JacksonJsonSerde in Kafka Streams documentation #51161
Document alternatives to HttpMessageConverters #51129
Fix stale type reference for OTLP logging transport metadata #51119
Metadata for spring.test.mockmvc.htmlunit.url declares the wrong type #51115
Caching documentation refers to AutoConfigureCache by its pre-4.0 package #51113
Fix examples in Metadata Format documentation chapter #51102
Improve discoverability of the AOT Cache How-to guides #51000
Table of auto-configured HealthIndicators lists the wrong key for MongoHealthIndicator #50940
Created StackTracePrinter instances have no access to the Environment #50414
MappingsEndpoint reports the context's own ID as parentId when a parent exists #50412
Buildpack module does not validate long-to-int casts #50410
Gradle gRPC support fails if protobuf-java dependency is used instead of protobuf-java-util #50405
GraphQL WebSocket support does not configure allowed origins #50394
Spring Boot Loader Does Not Support RSA and EC Signed Jars #50298
Meter registries are not removed from the global registry when the context is closed #50287
DataSourceBuilder cannot derive a DataSource from a lazy connection proxy #50271
Nullable annotations from AbstractErrorController.getErrorAttributes are not aligned with implementation #50266
Bean definitions can be added with an initializer before setAllowBeanDefinitionOverriding is called #50264
EndpointRequest links matcher unnecessarily matches HTTP methods other than GET #50261
Actuator's '/cloudfoundryapplication' endpoint does not work if restrictive CORS configuration is provided using a bean named corsConfigurationSource #50258
ThreadPoolTaskScheduleBuilder unnecessarily loses precision when configuring await termination time #50234
NimbusJwtDecoder silently accepts unknown values for spring.security.oauth2.resourceserver.jwt.jws-algorithms #50228
Missing dependency management for spring-boot-web-server-test #50224
Spring Batch support for MongoDB modules are not included in dependency management #50223
Apply HTML escaping to timestamp attribute in Whitelabel error page #50216
GrpcServerHealthScheduler is not started in servlet environments #50209
Setting server.servlet.session.cookie.partitioned=true has no effect when using Tomcat #50204
📔 Documentation
Fix reference to Gradle documentation for module replacement #50647
Created StackTracePrinter instances have no access to the Environment #50413
MappingsEndpoint reports the context's own ID as parentId when a parent exists #50411
Buildpack module does not validate long-to-int casts #50409
GraphQL WebSocket support does not configure allowed origins #50393
Configuration property metadata includes incorrect class references #50375
Spring Boot Loader Does Not Support RSA and EC Signed Jars #50297
Meter registries are not removed from the global registry when the context is closed #50286
Nullable annotations from AbstractErrorController.getErrorAttributes are not aligned with implementation #50265
EndpointRequest links matcher unnecessarily matches HTTP methods other than GET #50260
Actuator's '/cloudfoundryapplication' endpoint does not work if restrictive CORS configuration is provided using a bean named corsConfigurationSource #50257
ThreadPoolTaskScheduleBuilder unnecessarily loses precision when configuring await termination time #50233
NimbusJwtDecoder silently accepts unknown values for spring.security.oauth2.resourceserver.jwt.jws-algorithms #50227
Apply HTML escaping to timestamp attribute in Whitelabel error page #50215
Setting server.servlet.session.cookie.partitioned=true has no effect when using Tomcat #50201
📔 Documentation
Fix reference to Gradle documentation for module replacement #50646
OpenTelemetry's ZipkinSpanExporter has been deprecated and its support will be removed in Spring Boot 4.2. #49453
Jackson 2 has been upgraded to 2.21.1 in response to the Jackson team ending support for Jackson 2.20.x. #49389
Jackson has been upgraded to 3.1.0 in response to the Jackson team ending support for Jackson 3.0.x. #49383
The default value for server.tomcat.max-part-count has been increased from 10 to 50. This aligns it with Tomcat's own default and the default in Spring Boot 3.x. #49311
🐞 Bug Fixes
EndpointRequest request matcher for health groups is too complex #49649
"/cloudfoundryapplication" web path is not limited to Actuator #49646
Fix EndpointRequest.toLinks() when base-path is '/' #49617
Docker fails when a 'tcp://' address ends with a slash (for example 'tcp://docker:2375/') #49596
RSocket exposes duplicate endpoint for websocket setups #49593
Failure analysis for a missing mail sender is misleading #49582
SpringBootContextLoader mentions class that no longer exists in message for classes or locations assertion #49535
Ordering of 'spring.config.import' is inconsistent when defined in environment or system properties #49482
"spring.main.cloud-platform=none" does not disable cloud features #49479
SSL support with Docker Compose does not work as documented #49385
Auto-configuration overrides authorization server configuration applied by Customizer beans #49367
Using @AutoConfigureWebTestClient prevents separate configuration of spring.test.webtestclient.timeout from taking effect #49344
NoSuchMethodException when forcing the use of Log4J2LoggingSystem using org.springframework.boot.logging.LoggingSystem system property #49343
RouterFunctions descriptions in Actuator do not support nesting #49302
Maven plugin does not set '-parameters' option when processing AOT code #49295
HTTP Service Interface Client doesn't work in a native image due to missing property binding #49274
ErrorPageRegistrarBeanPostProcessor is not auto-configured in war deployments and the ErrorPageCustomizer is not applied #49176
The dependency on org.eclipse.jetty.ee11:jetty-ee11-servlets has been removed from spring-boot-jetty as it was unnecessary and unused. If your application code depends on a class from jetty-ee11-servlets, declare a dependency on it in your build configuration. #48677
🐞 Bug Fixes
No TransactionAutoConfiguration with spring-boot-starter-kafka for Spring Boot 4 #48880
Evaluation of bean conditions unnecessarily queries the bean factory for types that are not present #48840
When a bean condition references a type that is not present, it appears as ? in the condition evaluation report #48838
SessionAutoConfiguration creates a DefaultCookieSerializer with a default SameSite of null instead of Lax #48830
Setting graphql schema location to "classpath*:graphql/**/" causes failure due to incorrectly packaged test resource #48829
Message interpolation by MVC and WebFlux's Validators does not work correctly in a native image #48828
CloudFoundry integration fails in Servlet-based web app without a dependency on spring-boot-starter-restclient #48826
RestTestClientAutoConfiguration and TestRestTemplateAutoConfiguration should be package-private #48820
Hibernate has been upgraded to 7.2.0.Final in response to Hibernate 7.1 moving to limited support
spring-boot-starter-kotlin-serialization has been renamed to to spring-boot-starter-kotlinx-serialization-json and spring-boot-starter-kotlin-serialization-test has been renamed to spring-boot-starter-kotlinx-serialization-json-test. This change aligns the starters' names with those of their respective modules
Actuator's '/cloudfoundryapplication' endpoint does not work if restrictive CORS configuration is provided using a bean named corsConfigurationSource #50254
Meter registries are not removed from the global registry when the context is closed #50235
ThreadPoolTaskScheduleBuilder unnecessarily loses precision when configuring await termination time #50225
Apply HTML escaping to timestamp attribute in Whitelabel error page #50205
NimbusJwtDecoder silently accepts unknown values for spring.security.oauth2.resourceserver.jwt.jws-algorithms #50118
EndpointRequest links matcher unnecessarily matches HTTP methods other than GET #50095
📔 Documentation
Fix reference to Gradle documentation for module replacement #50641
Remove the use of Optional from Data Neo4j repository examples #50600
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [org.springframework.boot:spring-boot-starter-json](https://spring.io/projects/spring-boot) ([source](https://github.com/spring-projects/spring-boot)) | compile | major | `3.5.11` → `4.1.1` |
---
### Release Notes
<details>
<summary>spring-projects/spring-boot (org.springframework.boot:spring-boot-starter-json)</summary>
### [`v4.1.1`](https://github.com/spring-projects/spring-boot/releases/tag/v4.1.1)
[Compare Source](https://github.com/spring-projects/spring-boot/compare/v4.1.0...v4.1.1)
#### :warning: Attention Required
- Spring Boot's Gradle plugin no longer automatically configures gRPC when the Protobuf plugin is applied. This behavior caused problems for those using Protobuf without gRPC. To opt in to the configuration of gRPC, configure the `protobuf` extension with the `grpc` plugin using an empty block. The Spring Boot Gradle plugin will then automatically configure the use of `protoc-gen-grpc-java` as before. [#​50822](https://github.com/spring-projects/spring-boot/issues/50822)
#### :lady\_beetle: Bug Fixes
- Kafka consumer-specific security protocol is not taken into account [#​51369](https://github.com/spring-projects/spring-boot/issues/51369)
- Structured logging: a failed JSON encode corrupts the next log event written on the same thread [#​51156](https://github.com/spring-projects/spring-boot/pull/51156)
- Micrometer registries pin the application context [#​51135](https://github.com/spring-projects/spring-boot/issues/51135)
- Temporary file is not deleted when ExportedImageTar construction fails [#​51132](https://github.com/spring-projects/spring-boot/issues/51132)
- Metadata annotation processor ignores getter-level `@NestedConfigurationProperty` for records [#​51098](https://github.com/spring-projects/spring-boot/issues/51098)
- spring-boot-h2-console pulls servlet-api as transitive dependency [#​51095](https://github.com/spring-projects/spring-boot/issues/51095)
- PropertiesLauncher does not log nested archive paths [#​51089](https://github.com/spring-projects/spring-boot/issues/51089)
- Methods that return the result of Map#remove are not declared with a `@Nullable` return type [#​51087](https://github.com/spring-projects/spring-boot/issues/51087)
- NativeImageResourceProvider flattens Flyway migration paths in subdirectories [#​50964](https://github.com/spring-projects/spring-boot/issues/50964)
- Fix ordering of Kotlinx Serialization CodecCustomizer [#​50961](https://github.com/spring-projects/spring-boot/issues/50961)
- JarFile is not closed when finding main class from archive [#​50959](https://github.com/spring-projects/spring-boot/issues/50959)
- Application-managed JUL bridge handler should only be removed if installed [#​50950](https://github.com/spring-projects/spring-boot/issues/50950)
- CloudFoundry reactive auto-configuration should not require a WebClient.Builder bean to be defined [#​50944](https://github.com/spring-projects/spring-boot/issues/50944)
- Context refresh fails on reactive Cloud Foundry when using Actuator without spring-boot-health [#​50942](https://github.com/spring-projects/spring-boot/issues/50942)
- Resources are not cleaned up when resolving an image that is not yet present in the builder [#​50941](https://github.com/spring-projects/spring-boot/issues/50941)
- GraphQlWebMvcAutoConfiguration should apply customizers in order [#​50914](https://github.com/spring-projects/spring-boot/issues/50914)
- Auto-configured RedisMessageListenerContainer does not use virtual threads when spring.threads.virtual.enabled is true [#​50884](https://github.com/spring-projects/spring-boot/issues/50884)
- Context refresh fails when using Actuator on Jersey without spring-boot-health [#​50872](https://github.com/spring-projects/spring-boot/issues/50872)
- Context refresh fails on Cloud Foundry when using Actuator without spring-boot-health [#​50871](https://github.com/spring-projects/spring-boot/issues/50871)
- IllegalStateException when binding properties to a `@Validated` class that contains a map whose value type is a wildcard [#​50856](https://github.com/spring-projects/spring-boot/issues/50856)
- High number of connections due to Mongo health indicator [#​50852](https://github.com/spring-projects/spring-boot/issues/50852)
- Inconsistent handling of empty string values of spring.security.oauth2.resourceserver.jwt issuer-uri and jwk-set-uri [#​50849](https://github.com/spring-projects/spring-boot/issues/50849)
- Return type nullability of ApplicationContextAssert's getBean methods does not indicate that bean may be null [#​50845](https://github.com/spring-projects/spring-boot/issues/50845)
- PropertiesWebClientHttpServiceGroupConfigurer has highest precedence, preventing other configurers from being ordered ahead of it [#​50843](https://github.com/spring-projects/spring-boot/issues/50843)
- Exposing gRPC test server port should backoff if gRPC is not present [#​50825](https://github.com/spring-projects/spring-boot/issues/50825)
- JpaBaseConfiguration#entityManagerConfiguration can cause a dependency loop on beans declaring AsyncTaskExecutor [#​50801](https://github.com/spring-projects/spring-boot/pull/50801)
- spring.grpc.server.health.include-overall-health is not taken into account [#​50799](https://github.com/spring-projects/spring-boot/pull/50799)
- Setting 'server.servlet.session.cookie.partitioned' to false still emits the 'Partitioned' cookie attribute [#​50790](https://github.com/spring-projects/spring-boot/issues/50790)
- Managed version of Prometheus Client is not aligned with Micrometer's micrometer-registry-prometheus [#​50780](https://github.com/spring-projects/spring-boot/issues/50780)
- Map properties bound from empty strings fail with ConverterNotFoundException [#​50773](https://github.com/spring-projects/spring-boot/pull/50773)
- Protobuf Common Protos should not be a managed dependency [#​50772](https://github.com/spring-projects/spring-boot/issues/50772)
- An application that depends on spring-boot-security-oauth2-resource-server may fail to start with a ClassNotFoundException when Reactor is on the classpath but WebFlux is not [#​50764](https://github.com/spring-projects/spring-boot/issues/50764)
- W3CHeaderParser's decoding is not compliant with RFC 3986 [#​50650](https://github.com/spring-projects/spring-boot/pull/50650)
#### :notebook\_with\_decorative\_cover: Documentation
- Description of spring.graphql.websocket.connection-init-timeout does not render correctly in the reference guide [#​51348](https://github.com/spring-projects/spring-boot/pull/51348)
- spring.profiles.group should have a 'spring-profile-name' hint provider [#​51284](https://github.com/spring-projects/spring-boot/issues/51284)
- Remove reference to removed InfluxDB auto-configuration [#​51176](https://github.com/spring-projects/spring-boot/issues/51176)
- Use JacksonJsonSerde in Kafka Streams documentation [#​51161](https://github.com/spring-projects/spring-boot/issues/51161)
- Document alternatives to HttpMessageConverters [#​51129](https://github.com/spring-projects/spring-boot/issues/51129)
- Fix stale type reference for OTLP logging transport metadata [#​51119](https://github.com/spring-projects/spring-boot/pull/51119)
- Metadata for spring.test.mockmvc.htmlunit.url declares the wrong type [#​51115](https://github.com/spring-projects/spring-boot/issues/51115)
- Caching documentation refers to AutoConfigureCache by its pre-4.0 package [#​51113](https://github.com/spring-projects/spring-boot/issues/51113)
- Fix examples in Metadata Format documentation chapter [#​51102](https://github.com/spring-projects/spring-boot/issues/51102)
- Improve discoverability of the AOT Cache How-to guides [#​51000](https://github.com/spring-projects/spring-boot/issues/51000)
- Table of auto-configured HealthIndicators lists the wrong key for MongoHealthIndicator [#​50940](https://github.com/spring-projects/spring-boot/issues/50940)
- Update OpenTelemetryResourceAttributes documentation [#​50874](https://github.com/spring-projects/spring-boot/issues/50874)
- Fix `@Value` placeholder syntax in external config docs [#​50873](https://github.com/spring-projects/spring-boot/issues/50873)
- Polish gRPC documentation [#​50863](https://github.com/spring-projects/spring-boot/pull/50863)
- Fix duplicate word typos in documentation [#​50850](https://github.com/spring-projects/spring-boot/issues/50850)
- Fix forwarded headers property in cloud deployment docs [#​50848](https://github.com/spring-projects/spring-boot/issues/50848)
- Refer to spring-boot-starter-webmvc, not deprecated spring-boot-starter-web [#​50847](https://github.com/spring-projects/spring-boot/issues/50847)
- Fix documentation inconsistencies [#​50800](https://github.com/spring-projects/spring-boot/pull/50800)
- Add Spring gRPC properties to Common Application Properties referrence [#​50789](https://github.com/spring-projects/spring-boot/pull/50789)
- Document OTLP SSL service connections [#​50782](https://github.com/spring-projects/spring-boot/pull/50782)
- Update docs for changes to optional property binding and JPA repositories bootstrap mode [#​50759](https://github.com/spring-projects/spring-boot/pull/50759)
#### :hammer: Dependency Upgrades
- Upgrade to ActiveMQ 6.2.9 [#​51329](https://github.com/spring-projects/spring-boot/issues/51329)
- Upgrade to [Byte Buddy 1.18.11](https://github.com/raphw/byte-buddy/releases/tag/byte-buddy-1.18.11) [#​51003](https://github.com/spring-projects/spring-boot/issues/51003)
- Upgrade to CycloneDX Maven Plugin 2.9.3 [#​51185](https://github.com/spring-projects/spring-boot/issues/51185)
- Upgrade to DB2 JDBC 12.1.5.0 [#​51005](https://github.com/spring-projects/spring-boot/issues/51005)
- Upgrade to Elasticsearch Client 9.4.5 [#​51368](https://github.com/spring-projects/spring-boot/issues/51368)
- Upgrade to Groovy 5.0.8 [#​51186](https://github.com/spring-projects/spring-boot/issues/51186)
- Upgrade to Grpc Java 1.81.1 [#​51263](https://github.com/spring-projects/spring-boot/issues/51263)
- Upgrade to [Grpc Java 1.83.1](https://github.com/grpc/grpc-java/releases/tag/v1.83.1) [#​51361](https://github.com/spring-projects/spring-boot/issues/51361)
- Upgrade to [Hibernate 7.4.5.Final](https://github.com/hibernate/hibernate-orm/releases/tag/7.4.5) [#​51007](https://github.com/spring-projects/spring-boot/issues/51007)
- Upgrade to Hibernate Validator 9.1.3.Final [#​51187](https://github.com/spring-projects/spring-boot/issues/51187)
- Upgrade to HttpClient5 5.6.4 [#​51330](https://github.com/spring-projects/spring-boot/issues/51330)
- Upgrade to HttpCore5 5.4.3 [#​51010](https://github.com/spring-projects/spring-boot/issues/51010)
- Upgrade to [Jackson 2 Bom 2.21.5](https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.21.5) [#​51011](https://github.com/spring-projects/spring-boot/issues/51011)
- Upgrade to [Jackson Bom 3.1.5](https://github.com/FasterXML/jackson/wiki/Jackson-Release-3.1.5) [#​51012](https://github.com/spring-projects/spring-boot/issues/51012)
- Upgrade to Jetty 12.1.12 [#​51302](https://github.com/spring-projects/spring-boot/issues/51302)
- Upgrade to jOOQ 3.21.7 [#​51303](https://github.com/spring-projects/spring-boot/issues/51303)
- Upgrade to [JSpecify 1.0.1](https://github.com/jspecify/jspecify/releases/tag/v1.0.1) [#​51189](https://github.com/spring-projects/spring-boot/issues/51189)
- Upgrade to [Log4j2 2.25.5](https://github.com/apache/logging-log4j2/releases/tag/rel%2F2.25.5) [#​51015](https://github.com/spring-projects/spring-boot/issues/51015)
- Upgrade to Logback 1.5.38 [#​51016](https://github.com/spring-projects/spring-boot/issues/51016)
- Upgrade to MariaDB 3.5.10 [#​51190](https://github.com/spring-projects/spring-boot/issues/51190)
- Upgrade to Maven Help Plugin 3.5.2 [#​51018](https://github.com/spring-projects/spring-boot/issues/51018)
- Upgrade to [Maven Jar Plugin 3.5.1](https://github.com/apache/maven-jar-plugin/releases/tag/maven-jar-plugin-3.5.1) [#​51191](https://github.com/spring-projects/spring-boot/issues/51191)
- Upgrade to [Micrometer 1.17.1](https://github.com/micrometer-metrics/micrometer/releases/tag/v1.17.1) [#​51251](https://github.com/spring-projects/spring-boot/issues/51251)
- Upgrade to [Micrometer Tracing 1.7.1](https://github.com/micrometer-metrics/tracing/releases/tag/v1.7.1) [#​51252](https://github.com/spring-projects/spring-boot/issues/51252)
- Upgrade to [MongoDB 5.8.1](https://github.com/mongodb/mongo-java-driver/releases/tag/r5.8.1) [#​51360](https://github.com/spring-projects/spring-boot/issues/51360)
- Upgrade to Native Build Tools Plugin 1.1.4 [#​50947](https://github.com/spring-projects/spring-boot/issues/50947)
- Upgrade to Native Build Tools Plugin 1.1.8 [#​51304](https://github.com/spring-projects/spring-boot/issues/51304)
- Upgrade to Netty 4.2.17.Final [#​51305](https://github.com/spring-projects/spring-boot/issues/51305)
- Upgrade to Oracle Database 23.26.3.0.0 [#​51193](https://github.com/spring-projects/spring-boot/issues/51193)
- Upgrade to Pooled JMS 3.2.3 [#​51196](https://github.com/spring-projects/spring-boot/issues/51196)
- Upgrade to [Postgresql 42.7.13](https://github.com/pgjdbc/pgjdbc/releases/tag/REL42.7.13) [#​51022](https://github.com/spring-projects/spring-boot/issues/51022)
- Upgrade to Protobuf Java 4.35.1 [#​51264](https://github.com/spring-projects/spring-boot/issues/51264)
- Upgrade to Protobuf Maven Plugin 5.1.8 [#​51331](https://github.com/spring-projects/spring-boot/issues/51331)
- Upgrade to Pulsar 4.2.4 [#​51306](https://github.com/spring-projects/spring-boot/issues/51306)
- Upgrade to [R2DBC MariaDB 1.4.1](https://github.com/mariadb-corporation/mariadb-connector-r2dbc/releases/tag/1.4.1) [#​51024](https://github.com/spring-projects/spring-boot/issues/51024)
- Upgrade to [R2DBC MSSQL 1.0.5.RELEASE](https://github.com/r2dbc/r2dbc-mssql/releases/tag/v1.0.5.RELEASE) [#​51025](https://github.com/spring-projects/spring-boot/issues/51025)
- Upgrade to [R2DBC MySQL 1.4.3](https://github.com/asyncer-io/r2dbc-mysql/releases/tag/r2dbc-mysql-1.4.3) [#​51194](https://github.com/spring-projects/spring-boot/issues/51194)
- Upgrade to [R2DBC Postgresql 1.1.2.RELEASE](https://github.com/pgjdbc/r2dbc-postgresql/releases/tag/v1.1.2.RELEASE) [#​51026](https://github.com/spring-projects/spring-boot/issues/51026)
- Upgrade to [Reactor Bom 2025.0.7](https://github.com/reactor/reactor/releases/tag/2025.0.7) [#​51253](https://github.com/spring-projects/spring-boot/issues/51253)
- Upgrade to [Spring AMQP 4.1.1](https://github.com/spring-projects/spring-amqp/releases/tag/v4.1.1) [#​51254](https://github.com/spring-projects/spring-boot/issues/51254)
- Upgrade to [Spring Batch 6.0.5](https://github.com/spring-projects/spring-batch/releases/tag/v6.0.5) [#​51255](https://github.com/spring-projects/spring-boot/issues/51255)
- Upgrade to [Spring Data Bom 2026.0.1](https://github.com/spring-projects/spring-data-bom/releases/tag/2026.0.1) [#​51357](https://github.com/spring-projects/spring-boot/issues/51357)
- Upgrade to [Spring Framework 7.0.9](https://github.com/spring-projects/spring-framework/releases/tag/v7.0.9) [#​51256](https://github.com/spring-projects/spring-boot/issues/51256)
- Upgrade to [Spring GraphQL 2.0.5](https://github.com/spring-projects/spring-graphql/releases/tag/v2.0.5) [#​51257](https://github.com/spring-projects/spring-boot/issues/51257)
- Upgrade to [Spring gRPC 1.1.1](https://github.com/spring-projects/spring-grpc/releases/tag/v1.1.1) [#​51171](https://github.com/spring-projects/spring-boot/issues/51171)
- Upgrade to [Spring HATEOAS 3.1.2](https://github.com/spring-projects/spring-hateoas/releases/tag/3.1.2) [#​51358](https://github.com/spring-projects/spring-boot/issues/51358)
- Upgrade to [Spring Integration 7.1.1](https://github.com/spring-projects/spring-integration/releases/tag/v7.1.1) [#​51258](https://github.com/spring-projects/spring-boot/issues/51258)
- Upgrade to [Spring Kafka 4.1.1](https://github.com/spring-projects/spring-kafka/releases/tag/v4.1.1) [#​51259](https://github.com/spring-projects/spring-boot/issues/51259)
- Upgrade to [Spring LDAP 4.1.1](https://github.com/spring-projects/spring-ldap/releases/tag/4.1.1) [#​51260](https://github.com/spring-projects/spring-boot/issues/51260)
- Upgrade to [Spring Pulsar 2.0.7](https://github.com/spring-projects/spring-pulsar/releases/tag/v2.0.7) [#​51328](https://github.com/spring-projects/spring-boot/issues/51328)
- Upgrade to [Spring Security 7.1.1](https://github.com/spring-projects/spring-security/releases/tag/7.1.1) [#​51261](https://github.com/spring-projects/spring-boot/issues/51261)
- Upgrade to [Spring Session 4.1.1](https://github.com/spring-projects/spring-session/releases/tag/4.1.1) [#​51262](https://github.com/spring-projects/spring-boot/issues/51262)
- Upgrade to [SQLite JDBC 3.53.2.1](https://github.com/xerial/sqlite-jdbc/releases/tag/3.53.2.1) [#​51195](https://github.com/spring-projects/spring-boot/issues/51195)
- Upgrade to [Tomcat 11.0.24](https://tomcat.apache.org/tomcat-11.0-doc/changelog.html) [#​51027](https://github.com/spring-projects/spring-boot/issues/51027)
- Upgrade to [UnboundID LDAPSDK 7.0.5](https://github.com/pingidentity/ldapsdk/releases/tag/7.0.5) [#​51028](https://github.com/spring-projects/spring-boot/issues/51028)
- Upgrade to WebJars Locator Lite 1.1.4 [#​51029](https://github.com/spring-projects/spring-boot/issues/51029)
- Upgrade to [Yasson 3.0.5](https://github.com/eclipse-ee4j/yasson/releases/tag/3.0.5) [#​51307](https://github.com/spring-projects/spring-boot/issues/51307)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@​DragonFSKY](https://github.com/DragonFSKY), [@​LordKay-sudo](https://github.com/LordKay-sudo), [@​MacAlsandair](https://github.com/MacAlsandair), [@​SJvaca30](https://github.com/SJvaca30), [@​SebTardif](https://github.com/SebTardif), [@​SimonVerhoeven](https://github.com/SimonVerhoeven), [@​codingkiddo](https://github.com/codingkiddo), [@​dhruv-15-03](https://github.com/dhruv-15-03), [@​dlwldnjs1009](https://github.com/dlwldnjs1009), [@​dmitrysulman](https://github.com/dmitrysulman), [@​doehyunbaek](https://github.com/doehyunbaek), [@​filiphr](https://github.com/filiphr), [@​msridhar](https://github.com/msridhar), [@​ngocnhan-tran1996](https://github.com/ngocnhan-tran1996), [@​nosan](https://github.com/nosan), [@​ns3154](https://github.com/ns3154), [@​quaff](https://github.com/quaff), [@​scordio](https://github.com/scordio), [@​seonwooj0810](https://github.com/seonwooj0810), [@​skdas20](https://github.com/skdas20), [@​vipi-n](https://github.com/vipi-n), [@​vvzvvv](https://github.com/vvzvvv), [@​wantaekchoi](https://github.com/wantaekchoi), [@​xfocus3](https://github.com/xfocus3), and [@​yamamoto-ehhMH](https://github.com/yamamoto-ehhMH)
### [`v4.1.0`](https://github.com/spring-projects/spring-boot/releases/tag/v4.1.0)
[Compare Source](https://github.com/spring-projects/spring-boot/compare/v4.0.8...v4.1.0)
Full [release notes for Spring Boot 4.1](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.1-Release-Notes) are available on the wiki.
#### :star: New Features
- Add public constructor to InvalidConfigurationPropertyValueException that accepts a cause [#​50211](https://github.com/spring-projects/spring-boot/issues/50211)
- Reduce memory consumption when repeatedly calling WritableJson.toByteArray [#​49428](https://github.com/spring-projects/spring-boot/issues/49428)
#### :lady\_beetle: Bug Fixes
- MailSender auto-configuration does not enable hostname verification [#​50747](https://github.com/spring-projects/spring-boot/issues/50747)
- Artemis auto-configuration uses a predictable default location for the embedded broker's data [#​50745](https://github.com/spring-projects/spring-boot/issues/50745)
- Embedded LDAP SSL should not be enabled when its bundle is empty [#​50700](https://github.com/spring-projects/spring-boot/pull/50700)
- InetAddressFilter.externalAddresses does not exclude special purpose addresses from RFC 6890 [#​50668](https://github.com/spring-projects/spring-boot/issues/50668)
- NullPointerException in reactor-netty SniProvider and unmapped SSL bundle with RSocket [#​50645](https://github.com/spring-projects/spring-boot/issues/50645)
- SSL should not be enabled when a SSL bundle is overridden to an empty string [#​50635](https://github.com/spring-projects/spring-boot/issues/50635)
- Test auto-configuration no longer integrates Spring Security with HtmlUnitDriver [#​50633](https://github.com/spring-projects/spring-boot/issues/50633)
- Configuration property metadata includes incorrect class references [#​50632](https://github.com/spring-projects/spring-boot/issues/50632)
- Docker Compose support does not restore thread interrupt flag when catching InterruptedException [#​50618](https://github.com/spring-projects/spring-boot/issues/50618)
- RabbitProperties enables SSL even when spring.rabbitmq.ssl.bundle is overridden to an empty string [#​50612](https://github.com/spring-projects/spring-boot/issues/50612)
- NullPointerException in reactor-netty SniProvider when SSL bundle uses client-auth or server truststore without server-name-bundles [#​50610](https://github.com/spring-projects/spring-boot/issues/50610)
- SpringJtaPlatform should have been deprecated since 4.1.0-M3 [#​50592](https://github.com/spring-projects/spring-boot/issues/50592)
- Layer written outside the output location of '//' exception is thrown when using extract layers in root directory [#​50510](https://github.com/spring-projects/spring-boot/issues/50510)
- ConfigurationPropertiesReportEndpoint exposes AOP proxy internals [#​50417](https://github.com/spring-projects/spring-boot/issues/50417)
- Created StackTracePrinter instances have no access to the Environment [#​50414](https://github.com/spring-projects/spring-boot/issues/50414)
- MappingsEndpoint reports the context's own ID as parentId when a parent exists [#​50412](https://github.com/spring-projects/spring-boot/issues/50412)
- Buildpack module does not validate long-to-int casts [#​50410](https://github.com/spring-projects/spring-boot/issues/50410)
- Gradle gRPC support fails if protobuf-java dependency is used instead of protobuf-java-util [#​50405](https://github.com/spring-projects/spring-boot/pull/50405)
- GraphQL WebSocket support does not configure allowed origins [#​50394](https://github.com/spring-projects/spring-boot/issues/50394)
- Spring Boot Loader Does Not Support RSA and EC Signed Jars [#​50298](https://github.com/spring-projects/spring-boot/issues/50298)
- Meter registries are not removed from the global registry when the context is closed [#​50287](https://github.com/spring-projects/spring-boot/issues/50287)
- DataSourceBuilder cannot derive a DataSource from a lazy connection proxy [#​50271](https://github.com/spring-projects/spring-boot/pull/50271)
- Nullable annotations from AbstractErrorController.getErrorAttributes are not aligned with implementation [#​50266](https://github.com/spring-projects/spring-boot/issues/50266)
- Bean definitions can be added with an initializer before setAllowBeanDefinitionOverriding is called [#​50264](https://github.com/spring-projects/spring-boot/issues/50264)
- EndpointRequest links matcher unnecessarily matches HTTP methods other than GET [#​50261](https://github.com/spring-projects/spring-boot/issues/50261)
- Actuator's '/cloudfoundryapplication' endpoint does not work if restrictive CORS configuration is provided using a bean named corsConfigurationSource [#​50258](https://github.com/spring-projects/spring-boot/issues/50258)
- ThreadPoolTaskScheduleBuilder unnecessarily loses precision when configuring await termination time [#​50234](https://github.com/spring-projects/spring-boot/issues/50234)
- NimbusJwtDecoder silently accepts unknown values for spring.security.oauth2.resourceserver.jwt.jws-algorithms [#​50228](https://github.com/spring-projects/spring-boot/issues/50228)
- Missing dependency management for spring-boot-web-server-test [#​50224](https://github.com/spring-projects/spring-boot/issues/50224)
- Spring Batch support for MongoDB modules are not included in dependency management [#​50223](https://github.com/spring-projects/spring-boot/pull/50223)
- Apply HTML escaping to timestamp attribute in Whitelabel error page [#​50216](https://github.com/spring-projects/spring-boot/issues/50216)
- GrpcServerHealthScheduler is not started in servlet environments [#​50209](https://github.com/spring-projects/spring-boot/issues/50209)
- Setting server.servlet.session.cookie.partitioned=true has no effect when using Tomcat [#​50204](https://github.com/spring-projects/spring-boot/issues/50204)
#### :notebook\_with\_decorative\_cover: Documentation
- Fix reference to Gradle documentation for module replacement [#​50647](https://github.com/spring-projects/spring-boot/issues/50647)
- Document SSL reloading with Let's Encrypt [#​50630](https://github.com/spring-projects/spring-boot/issues/50630)
- Remove the use of Optional from Data Neo4j repository examples [#​50622](https://github.com/spring-projects/spring-boot/issues/50622)
- Fix typos in documentation [#​50620](https://github.com/spring-projects/spring-boot/issues/50620)
- Clarify dependency requirement for Bean Validation support [#​50614](https://github.com/spring-projects/spring-boot/issues/50614)
- Document Java 25 requirement for AOT cache [#​50485](https://github.com/spring-projects/spring-boot/issues/50485)
- Add links for Java CAS Client Spring Boot Starter [#​50285](https://github.com/spring-projects/spring-boot/issues/50285)
- Document known testcontainers lifecycle issues [#​50220](https://github.com/spring-projects/spring-boot/issues/50220)
- Document adding multiple connectors for Jetty [#​50218](https://github.com/spring-projects/spring-boot/issues/50218)
- Polish InvalidConfigurationPropertyValueException constructor javadoc [#​50214](https://github.com/spring-projects/spring-boot/issues/50214)
- Fix typo in Spring Security OAuth2 client registration documentation [#​50199](https://github.com/spring-projects/spring-boot/issues/50199)
#### :hammer: Dependency Upgrades
- Upgrade to ActiveMQ 6.2.6 [#​50652](https://github.com/spring-projects/spring-boot/issues/50652)
- Upgrade to Byte Buddy 1.18.10 [#​50693](https://github.com/spring-projects/spring-boot/issues/50693)
- Upgrade to [Caffeine 3.2.4](https://github.com/ben-manes/caffeine/releases/tag/v3.2.4) [#​50338](https://github.com/spring-projects/spring-boot/issues/50338)
- Upgrade to Cassandra Driver 4.19.3 [#​50654](https://github.com/spring-projects/spring-boot/issues/50654)
- Upgrade to [Couchbase Client 3.11.3](https://docs.couchbase.com/java-sdk/current/project-docs/sdk-release-notes.html) [#​50576](https://github.com/spring-projects/spring-boot/issues/50576)
- Upgrade to Elasticsearch Client 9.4.2 [#​50655](https://github.com/spring-projects/spring-boot/issues/50655)
- Upgrade to Glassfish JAXB 4.0.9 [#​50656](https://github.com/spring-projects/spring-boot/issues/50656)
- Upgrade to Groovy 5.0.6 [#​50340](https://github.com/spring-projects/spring-boot/issues/50340)
- Upgrade to Hibernate 7.4.1.Final [#​50732](https://github.com/spring-projects/spring-boot/issues/50732)
- Upgrade to [Infinispan 16.1.4](https://github.com/infinispan/infinispan/releases/tag/16.1.4) [#​50342](https://github.com/spring-projects/spring-boot/issues/50342)
- Upgrade to Jackson 2 Bom 2.21.4 [#​50657](https://github.com/spring-projects/spring-boot/issues/50657)
- Upgrade to Jackson Bom 3.1.4 [#​50658](https://github.com/spring-projects/spring-boot/issues/50658)
- Upgrade to Jakarta Json Bind 3.0.2 [#​50659](https://github.com/spring-projects/spring-boot/issues/50659)
- Upgrade to [Jakarta XML Bind 4.0.5](https://github.com/jakartaee/jaxb-api/releases/tag/4.0.5) [#​50345](https://github.com/spring-projects/spring-boot/issues/50345)
- Upgrade to Jaxen 2.0.6 [#​50710](https://github.com/spring-projects/spring-boot/issues/50710)
- Upgrade to [Jetty 12.1.10](https://github.com/jetty/jetty.project/releases/tag/jetty-12.1.10) [#​50661](https://github.com/spring-projects/spring-boot/issues/50661)
- Upgrade to Jetty Reactive HTTPClient 4.1.5 [#​50711](https://github.com/spring-projects/spring-boot/issues/50711)
- Upgrade to jOOQ 3.21.5 [#​50712](https://github.com/spring-projects/spring-boot/issues/50712)
- Upgrade to [Kafka 4.2.1](https://downloads.apache.org/kafka/4.2.1/RELEASE_NOTES.html) [#​50662](https://github.com/spring-projects/spring-boot/issues/50662)
- Upgrade to [Kotlin 2.3.21](https://github.com/JetBrains/kotlin/releases/tag/v2.3.21) [#​50347](https://github.com/spring-projects/spring-boot/issues/50347)
- Upgrade to [Lettuce 7.5.2.RELEASE](https://github.com/redis/lettuce/releases/tag/7.5.2.RELEASE) [#​50581](https://github.com/spring-projects/spring-boot/issues/50581)
- Upgrade to [Liquibase 5.0.3](https://github.com/liquibase/liquibase/releases/tag/v5.0.3) [#​50582](https://github.com/spring-projects/spring-boot/issues/50582)
- Upgrade to Logback 1.5.34 [#​50663](https://github.com/spring-projects/spring-boot/issues/50663)
- Upgrade to [Maven Enforcer Plugin 3.6.3](https://github.com/apache/maven-enforcer/releases/tag/enforcer-3.6.3) [#​50583](https://github.com/spring-projects/spring-boot/issues/50583)
- Upgrade to [Maven Failsafe Plugin 3.5.6](https://github.com/apache/maven-surefire/releases/tag/surefire-3.5.6) [#​50664](https://github.com/spring-projects/spring-boot/issues/50664)
- Upgrade to [Maven Surefire Plugin 3.5.6](https://github.com/apache/maven-surefire/releases/tag/surefire-3.5.6) [#​50665](https://github.com/spring-projects/spring-boot/issues/50665)
- Upgrade to [Micrometer 1.17.0](https://github.com/micrometer-metrics/micrometer/releases/tag/v1.17.0) [#​50559](https://github.com/spring-projects/spring-boot/issues/50559)
- Upgrade to [Micrometer Tracing 1.7.0](https://github.com/micrometer-metrics/tracing/releases/tag/v1.7.0) [#​50560](https://github.com/spring-projects/spring-boot/issues/50560)
- Upgrade to MongoDB 5.8.0 [#​50608](https://github.com/spring-projects/spring-boot/issues/50608)
- Upgrade to [Native Build Tools Plugin 1.1.1](https://github.com/graalvm/native-build-tools/releases/tag/1.1.1) [#​50585](https://github.com/spring-projects/spring-boot/issues/50585)
- Upgrade to [Neo4j Java Driver 6.1.0](https://github.com/neo4j/neo4j-java-driver/releases/tag/6.1.0) [#​50586](https://github.com/spring-projects/spring-boot/issues/50586)
- Upgrade to Netty 4.2.15.Final [#​50666](https://github.com/spring-projects/spring-boot/issues/50666)
- Upgrade to [OpenTelemetry 1.62.0](https://github.com/open-telemetry/opentelemetry-java/releases/tag/v1.62.0) [#​50588](https://github.com/spring-projects/spring-boot/issues/50588)
- Upgrade to Oracle Database 23.26.2.0.0 [#​50667](https://github.com/spring-projects/spring-boot/issues/50667)
- Upgrade to [Postgresql 42.7.11](https://github.com/pgjdbc/pgjdbc/releases/tag/REL42.7.11) [#​50349](https://github.com/spring-projects/spring-boot/issues/50349)
- Upgrade to [Protobuf Java 4.34.2](https://github.com/protocolbuffers/protobuf/releases/tag/v4.34.2) [#​50590](https://github.com/spring-projects/spring-boot/issues/50590)
- Upgrade to [Protobuf Maven Plugin 5.1.4](https://github.com/ascopes/protobuf-maven-plugin/releases/tag/v5.1.4) [#​50589](https://github.com/spring-projects/spring-boot/issues/50589)
- Upgrade to Pulsar 4.2.2 [#​50713](https://github.com/spring-projects/spring-boot/issues/50713)
- Upgrade to [R2DBC MySQL 1.4.2](https://github.com/asyncer-io/r2dbc-mysql/releases/tag/r2dbc-mysql-1.4.2) [#​50351](https://github.com/spring-projects/spring-boot/issues/50351)
- Upgrade to [Reactor Bom 2025.0.6](https://github.com/reactor/reactor/releases/tag/2025.0.6) [#​50561](https://github.com/spring-projects/spring-boot/issues/50561)
- Upgrade to SAAJ Impl 3.0.6 [#​50714](https://github.com/spring-projects/spring-boot/issues/50714)
- Upgrade to SLF4J 2.0.18 [#​50591](https://github.com/spring-projects/spring-boot/issues/50591)
- Upgrade to [Spring AMQP 4.1.0](https://github.com/spring-projects/spring-amqp/releases/tag/v4.1.0) [#​50562](https://github.com/spring-projects/spring-boot/issues/50562)
- Upgrade to [Spring Batch 6.0.4](https://github.com/spring-projects/spring-batch/releases/tag/v6.0.4) [#​50563](https://github.com/spring-projects/spring-boot/issues/50563)
- Upgrade to [Spring Data Bom 2026.0.0](https://github.com/spring-projects/spring-data-bom/releases/tag/2026.0.0) [#​50564](https://github.com/spring-projects/spring-boot/issues/50564)
- Upgrade to [Spring Framework 7.0.8](https://github.com/spring-projects/spring-framework/releases/tag/v7.0.8) [#​50565](https://github.com/spring-projects/spring-boot/issues/50565)
- Upgrade to [Spring GraphQL 2.0.4](https://github.com/spring-projects/spring-graphql/releases/tag/v2.0.4) [#​50741](https://github.com/spring-projects/spring-boot/issues/50741)
- Upgrade to [Spring gRPC 1.1.0](https://github.com/spring-projects/spring-grpc/releases/tag/v1.1.0) [#​50566](https://github.com/spring-projects/spring-boot/issues/50566)
- Upgrade to [Spring HATEOAS 3.1.1](https://github.com/spring-projects/spring-hateoas/releases/tag/3.1.1) [#​50567](https://github.com/spring-projects/spring-boot/issues/50567)
- Upgrade to [Spring Integration 7.1.0](https://github.com/spring-projects/spring-integration/releases/tag/v7.1.0) [#​50568](https://github.com/spring-projects/spring-boot/issues/50568)
- Upgrade to [Spring Kafka 4.1.0](https://github.com/spring-projects/spring-kafka/releases/tag/v4.1.0) [#​50569](https://github.com/spring-projects/spring-boot/issues/50569)
- Upgrade to [Spring LDAP 4.1.0](https://github.com/spring-projects/spring-ldap/releases/tag/4.1.0) [#​50570](https://github.com/spring-projects/spring-boot/issues/50570)
- Upgrade to [Spring Pulsar 2.0.6](https://github.com/spring-projects/spring-pulsar/releases/tag/v2.0.6) [#​50571](https://github.com/spring-projects/spring-boot/issues/50571)
- Upgrade to [Spring RESTDocs 4.0.1](https://github.com/spring-projects/spring-restdocs/releases/tag/v4.0.1) [#​50572](https://github.com/spring-projects/spring-boot/issues/50572)
- Upgrade to [Spring Security 7.1.0](https://github.com/spring-projects/spring-security/releases/tag/7.1.0) [#​50573](https://github.com/spring-projects/spring-boot/issues/50573)
- Upgrade to [Spring Session 4.1.0](https://github.com/spring-projects/spring-session/releases/tag/4.1.0) [#​50574](https://github.com/spring-projects/spring-boot/issues/50574)
- Upgrade to [Spring WS 5.0.2](https://github.com/spring-projects/spring-ws/releases/tag/v5.0.2) [#​50575](https://github.com/spring-projects/spring-boot/issues/50575)
- Upgrade to SQLite JDBC 3.53.2.0 [#​50715](https://github.com/spring-projects/spring-boot/issues/50715)
- Upgrade to [Tomcat 11.0.22](https://tomcat.apache.org/tomcat-11.0-doc/changelog.html) [#​50354](https://github.com/spring-projects/spring-boot/issues/50354)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@​Abdlatif-nabgha](https://github.com/Abdlatif-nabgha), [@​DragonFSKY](https://github.com/DragonFSKY), [@​Kapil-chn7](https://github.com/Kapil-chn7), [@​Kimgyuilli](https://github.com/Kimgyuilli), [@​SJvaca30](https://github.com/SJvaca30), [@​SebTardif](https://github.com/SebTardif), [@​ares333](https://github.com/ares333), [@​codingkiddo](https://github.com/codingkiddo), [@​dlwldnjs1009](https://github.com/dlwldnjs1009), [@​eddumelendez](https://github.com/eddumelendez), [@​henriquejsza](https://github.com/henriquejsza), [@​igormukhin](https://github.com/igormukhin), [@​johnnypwong](https://github.com/johnnypwong), [@​kwondh5217](https://github.com/kwondh5217), [@​leestana01](https://github.com/leestana01), [@​mheath](https://github.com/mheath), [@​mmoayyed](https://github.com/mmoayyed), [@​msridhar](https://github.com/msridhar), [@​ngocnhan-tran1996](https://github.com/ngocnhan-tran1996), [@​nosan](https://github.com/nosan), [@​quaff](https://github.com/quaff), [@​scordio](https://github.com/scordio), [@​vinhhieu21](https://github.com/vinhhieu21), [@​vpavic](https://github.com/vpavic), [@​won-seoop](https://github.com/won-seoop), and [@​zxuhan](https://github.com/zxuhan)
### [`v4.0.8`](https://github.com/spring-projects/spring-boot/releases/tag/v4.0.8)
[Compare Source](https://github.com/spring-projects/spring-boot/compare/v4.0.7...v4.0.8)
#### :lady\_beetle: Bug Fixes
- Kafka consumer-specific security protocol is not taken into account [#​51365](https://github.com/spring-projects/spring-boot/issues/51365)
- Temporary file is not deleted when ExportedImageTar construction fails [#​51117](https://github.com/spring-projects/spring-boot/pull/51117)
- spring-boot-h2-console pulls servlet-api as transitive dependency [#​51094](https://github.com/spring-projects/spring-boot/issues/51094)
- Methods that return the result of Map#remove are not declared with a `@Nullable` return type [#​50972](https://github.com/spring-projects/spring-boot/pull/50972)
- PropertiesLauncher does not log nested archive paths [#​50968](https://github.com/spring-projects/spring-boot/pull/50968)
- JarFile is not closed when finding main class from archive [#​50949](https://github.com/spring-projects/spring-boot/pull/50949)
- CloudFoundry reactive auto-configuration should not require a WebClient.Builder bean to be defined [#​50928](https://github.com/spring-projects/spring-boot/issues/50928)
- Resources are not cleaned up when resolving an image that is not yet present in the builder [#​50919](https://github.com/spring-projects/spring-boot/pull/50919)
- Context refresh fails on reactive Cloud Foundry when using Actuator without spring-boot-health [#​50916](https://github.com/spring-projects/spring-boot/pull/50916)
- GraphQlWebMvcAutoConfiguration should apply customizers in order [#​50908](https://github.com/spring-projects/spring-boot/pull/50908)
- Micrometer registries pin the application context [#​50886](https://github.com/spring-projects/spring-boot/pull/50886)
- Context refresh fails when using Actuator on Jersey without spring-boot-health [#​50858](https://github.com/spring-projects/spring-boot/pull/50858)
- Context refresh fails on Cloud Foundry when using Actuator without spring-boot-health [#​50857](https://github.com/spring-projects/spring-boot/pull/50857)
- IllegalStateException when binding properties to a `@Validated` class that contains a map whose value type is a wildcard [#​50798](https://github.com/spring-projects/spring-boot/pull/50798)
- Setting 'server.servlet.session.cookie.partitioned' to false still emits the 'Partitioned' cookie attribute [#​50781](https://github.com/spring-projects/spring-boot/pull/50781)
- Application-managed JUL bridge handler should only be removed if installed [#​50779](https://github.com/spring-projects/spring-boot/pull/50779)
- Inconsistent handling of empty string values of spring.security.oauth2.resourceserver.jwt issuer-uri and jwk-set-uri [#​50755](https://github.com/spring-projects/spring-boot/pull/50755)
- PropertiesWebClientHttpServiceGroupConfigurer has highest precedence, preventing other configurers from being ordered ahead of it [#​50737](https://github.com/spring-projects/spring-boot/pull/50737)
- High number of connections due to Mongo health indicator [#​50734](https://github.com/spring-projects/spring-boot/pull/50734)
- Return type nullability of ApplicationContextAssert's getBean methods does not indicate that bean may be null [#​50701](https://github.com/spring-projects/spring-boot/pull/50701)
- NativeImageResourceProvider flattens Flyway migration paths in subdirectories [#​50433](https://github.com/spring-projects/spring-boot/pull/50433)
- Fix ordering of Kotlinx Serialization CodecCustomizer [#​50428](https://github.com/spring-projects/spring-boot/pull/50428)
- Metadata annotation processor ignores getter-level `@NestedConfigurationProperty` for records [#​50096](https://github.com/spring-projects/spring-boot/issues/50096)
#### :notebook\_with\_decorative\_cover: Documentation
- spring.profiles.group should have a 'spring-profile-name' hint provider [#​51273](https://github.com/spring-projects/spring-boot/issues/51273)
- Remove reference to removed InfluxDB auto-configuration [#​51172](https://github.com/spring-projects/spring-boot/pull/51172)
- Use JacksonJsonSerde in Kafka Streams documentation [#​51152](https://github.com/spring-projects/spring-boot/pull/51152)
- Document alternatives to HttpMessageConverters [#​51124](https://github.com/spring-projects/spring-boot/pull/51124)
- Caching documentation refers to AutoConfigureCache by its pre-4.0 package [#​51111](https://github.com/spring-projects/spring-boot/pull/51111)
- Metadata for spring.test.mockmvc.htmlunit.url declares the wrong type [#​51110](https://github.com/spring-projects/spring-boot/pull/51110)
- Fix examples in Metadata Format documentation chapter [#​51097](https://github.com/spring-projects/spring-boot/pull/51097)
- Improve discoverability of the AOT Cache How-to guides [#​50996](https://github.com/spring-projects/spring-boot/issues/50996)
- Table of auto-configured HealthIndicators lists the wrong key for MongoHealthIndicator [#​50931](https://github.com/spring-projects/spring-boot/pull/50931)
- Update OpenTelemetryResourceAttributes documentation [#​50867](https://github.com/spring-projects/spring-boot/pull/50867)
- Fix `@Value` placeholder syntax in external config docs [#​50859](https://github.com/spring-projects/spring-boot/pull/50859)
- Refer to spring-boot-starter-webmvc, not deprecated spring-boot-starter-web [#​50842](https://github.com/spring-projects/spring-boot/pull/50842)
- Fix forwarded headers property in cloud deployment docs [#​50841](https://github.com/spring-projects/spring-boot/pull/50841)
- Fix duplicate word typos in documentation [#​50738](https://github.com/spring-projects/spring-boot/pull/50738)
#### :hammer: Dependency Upgrades
- Upgrade to CycloneDX Maven Plugin 2.9.3 [#​51178](https://github.com/spring-projects/spring-boot/issues/51178)
- Upgrade to DB2 JDBC 12.1.5.0 [#​50977](https://github.com/spring-projects/spring-boot/issues/50977)
- Upgrade to [Elasticsearch Client 9.2.9](https://www.elastic.co/docs/release-notes/elasticsearch/clients/java/9-2-9) [#​51366](https://github.com/spring-projects/spring-boot/issues/51366)
- Upgrade to Groovy 5.0.8 [#​51179](https://github.com/spring-projects/spring-boot/issues/51179)
- Upgrade to Hibernate 7.2.24.Final [#​51180](https://github.com/spring-projects/spring-boot/issues/51180)
- Upgrade to [Jackson 2 Bom 2.21.5](https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.21.5) [#​50980](https://github.com/spring-projects/spring-boot/issues/50980)
- Upgrade to [Jackson Bom 3.1.5](https://github.com/FasterXML/jackson/wiki/Jackson-Release-3.1.5) [#​50981](https://github.com/spring-projects/spring-boot/issues/50981)
- Upgrade to Jetty 12.1.12 [#​51298](https://github.com/spring-projects/spring-boot/issues/51298)
- Upgrade to jOOQ 3.19.37 [#​51299](https://github.com/spring-projects/spring-boot/issues/51299)
- Upgrade to [JSpecify 1.0.1](https://github.com/jspecify/jspecify/releases/tag/v1.0.1) [#​51181](https://github.com/spring-projects/spring-boot/issues/51181)
- Upgrade to [Log4j2 2.25.5](https://github.com/apache/logging-log4j2/releases/tag/rel%2F2.25.5) [#​50984](https://github.com/spring-projects/spring-boot/issues/50984)
- Upgrade to Logback 1.5.38 [#​50985](https://github.com/spring-projects/spring-boot/issues/50985)
- Upgrade to MariaDB 3.5.10 [#​51182](https://github.com/spring-projects/spring-boot/issues/51182)
- Upgrade to Maven Help Plugin 3.5.2 [#​50987](https://github.com/spring-projects/spring-boot/issues/50987)
- Upgrade to [Micrometer 1.16.7](https://github.com/micrometer-metrics/micrometer/releases/tag/v1.16.7) [#​51235](https://github.com/spring-projects/spring-boot/issues/51235)
- Upgrade to [Micrometer Tracing 1.6.7](https://github.com/micrometer-metrics/tracing/releases/tag/v1.6.7) [#​51236](https://github.com/spring-projects/spring-boot/issues/51236)
- Upgrade to Netty 4.2.17.Final [#​51300](https://github.com/spring-projects/spring-boot/issues/51300)
- Upgrade to [Postgresql 42.7.13](https://github.com/pgjdbc/pgjdbc/releases/tag/REL42.7.13) [#​50989](https://github.com/spring-projects/spring-boot/issues/50989)
- Upgrade to [R2DBC MariaDB 1.3.1](https://github.com/mariadb-corporation/mariadb-connector-r2dbc/releases/tag/1.3.1) [#​50990](https://github.com/spring-projects/spring-boot/issues/50990)
- Upgrade to [R2DBC MSSQL 1.0.5.RELEASE](https://github.com/r2dbc/r2dbc-mssql/releases/tag/v1.0.5.RELEASE) [#​50991](https://github.com/spring-projects/spring-boot/issues/50991)
- Upgrade to [R2DBC MySQL 1.4.3](https://github.com/asyncer-io/r2dbc-mysql/releases/tag/r2dbc-mysql-1.4.3) [#​51183](https://github.com/spring-projects/spring-boot/issues/51183)
- Upgrade to [R2DBC Postgresql 1.1.2.RELEASE](https://github.com/pgjdbc/r2dbc-postgresql/releases/tag/v1.1.2.RELEASE) [#​50992](https://github.com/spring-projects/spring-boot/issues/50992)
- Upgrade to [Reactor Bom 2025.0.7](https://github.com/reactor/reactor/releases/tag/2025.0.7) [#​51237](https://github.com/spring-projects/spring-boot/issues/51237)
- Upgrade to [Spring AMQP 4.0.5](https://github.com/spring-projects/spring-amqp/releases/tag/v4.0.5) [#​51238](https://github.com/spring-projects/spring-boot/issues/51238)
- Upgrade to [Spring Batch 6.0.5](https://github.com/spring-projects/spring-batch/releases/tag/v6.0.5) [#​51239](https://github.com/spring-projects/spring-boot/issues/51239)
- Upgrade to [Spring Data Bom 2025.1.7](https://github.com/spring-projects/spring-data-bom/releases/tag/2025.1.7) [#​51355](https://github.com/spring-projects/spring-boot/issues/51355)
- Upgrade to [Spring Framework 7.0.9](https://github.com/spring-projects/spring-framework/releases/tag/v7.0.9) [#​51240](https://github.com/spring-projects/spring-boot/issues/51240)
- Upgrade to [Spring GraphQL 2.0.5](https://github.com/spring-projects/spring-graphql/releases/tag/v2.0.5) [#​51241](https://github.com/spring-projects/spring-boot/issues/51241)
- Upgrade to [Spring HATEOAS 3.0.5](https://github.com/spring-projects/spring-hateoas/releases/tag/3.0.5) [#​51356](https://github.com/spring-projects/spring-boot/issues/51356)
- Upgrade to [Spring Integration 7.0.6](https://github.com/spring-projects/spring-integration/releases/tag/v7.0.6) [#​51242](https://github.com/spring-projects/spring-boot/issues/51242)
- Upgrade to [Spring Kafka 4.0.7](https://github.com/spring-projects/spring-kafka/releases/tag/v4.0.7) [#​51243](https://github.com/spring-projects/spring-boot/issues/51243)
- Upgrade to [Spring LDAP 4.0.5](https://github.com/spring-projects/spring-ldap/releases/tag/4.0.5) [#​51244](https://github.com/spring-projects/spring-boot/issues/51244)
- Upgrade to [Spring Pulsar 2.0.7](https://github.com/spring-projects/spring-pulsar/releases/tag/v2.0.7) [#​51327](https://github.com/spring-projects/spring-boot/issues/51327)
- Upgrade to [Spring Security 7.0.7](https://github.com/spring-projects/spring-security/releases/tag/7.0.7) [#​51245](https://github.com/spring-projects/spring-boot/issues/51245)
- Upgrade to [Spring Session 4.0.5](https://github.com/spring-projects/spring-session/releases/tag/4.0.5) [#​51246](https://github.com/spring-projects/spring-boot/issues/51246)
- Upgrade to [Tomcat 11.0.24](https://tomcat.apache.org/tomcat-11.0-doc/changelog.html) [#​50993](https://github.com/spring-projects/spring-boot/issues/50993)
- Upgrade to [UnboundID LDAPSDK 7.0.5](https://github.com/pingidentity/ldapsdk/releases/tag/7.0.5) [#​50994](https://github.com/spring-projects/spring-boot/issues/50994)
- Upgrade to WebJars Locator Lite 1.1.4 [#​50995](https://github.com/spring-projects/spring-boot/issues/50995)
- Upgrade to [Yasson 3.0.5](https://github.com/eclipse-ee4j/yasson/releases/tag/3.0.5) [#​51301](https://github.com/spring-projects/spring-boot/issues/51301)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@​DragonFSKY](https://github.com/DragonFSKY), [@​LordKay-sudo](https://github.com/LordKay-sudo), [@​MacAlsandair](https://github.com/MacAlsandair), [@​SJvaca30](https://github.com/SJvaca30), [@​SebTardif](https://github.com/SebTardif), [@​codingkiddo](https://github.com/codingkiddo), [@​dhruv-15-03](https://github.com/dhruv-15-03), [@​dlwldnjs1009](https://github.com/dlwldnjs1009), [@​dmitrysulman](https://github.com/dmitrysulman), [@​doehyunbaek](https://github.com/doehyunbaek), [@​filiphr](https://github.com/filiphr), [@​msridhar](https://github.com/msridhar), [@​ngocnhan-tran1996](https://github.com/ngocnhan-tran1996), [@​nosan](https://github.com/nosan), [@​quaff](https://github.com/quaff), [@​scordio](https://github.com/scordio), [@​seonwooj0810](https://github.com/seonwooj0810), [@​vipi-n](https://github.com/vipi-n), [@​vvzvvv](https://github.com/vvzvvv), [@​wantaekchoi](https://github.com/wantaekchoi), [@​xfocus3](https://github.com/xfocus3), and [@​yamamoto-ehhMH](https://github.com/yamamoto-ehhMH)
### [`v4.0.7`](https://github.com/spring-projects/spring-boot/releases/tag/v4.0.7)
[Compare Source](https://github.com/spring-projects/spring-boot/compare/v4.0.6...v4.0.7)
#### :lady\_beetle: Bug Fixes
- MailSender auto-configuration does not enable hostname verification [#​50746](https://github.com/spring-projects/spring-boot/issues/50746)
- Artemis auto-configuration uses a predictable default location for the embedded broker's data [#​50744](https://github.com/spring-projects/spring-boot/issues/50744)
- NullPointerException in reactor-netty SniProvider and unmapped SSL bundle with RSocket [#​50640](https://github.com/spring-projects/spring-boot/pull/50640)
- SSL should not be enabled when a SSL bundle is overridden to an empty string [#​50634](https://github.com/spring-projects/spring-boot/issues/50634)
- Docker Compose support does not restore thread interrupt flag when catching InterruptedException [#​50617](https://github.com/spring-projects/spring-boot/issues/50617)
- RabbitProperties enables SSL even when spring.rabbitmq.ssl.bundle is overridden to an empty string [#​50611](https://github.com/spring-projects/spring-boot/issues/50611)
- NullPointerException in reactor-netty SniProvider when SSL bundle uses client-auth or server truststore without server-name-bundles [#​50609](https://github.com/spring-projects/spring-boot/issues/50609)
- Test auto-configuration no longer integrates Spring Security with HtmlUnitDriver [#​50602](https://github.com/spring-projects/spring-boot/pull/50602)
- Layer written outside the output location of '//' exception is thrown when using extract layers in root directory [#​50509](https://github.com/spring-projects/spring-boot/issues/50509)
- ConfigurationPropertiesReportEndpoint exposes AOP proxy internals [#​50416](https://github.com/spring-projects/spring-boot/issues/50416)
- Created StackTracePrinter instances have no access to the Environment [#​50413](https://github.com/spring-projects/spring-boot/issues/50413)
- MappingsEndpoint reports the context's own ID as parentId when a parent exists [#​50411](https://github.com/spring-projects/spring-boot/issues/50411)
- Buildpack module does not validate long-to-int casts [#​50409](https://github.com/spring-projects/spring-boot/issues/50409)
- GraphQL WebSocket support does not configure allowed origins [#​50393](https://github.com/spring-projects/spring-boot/issues/50393)
- Configuration property metadata includes incorrect class references [#​50375](https://github.com/spring-projects/spring-boot/pull/50375)
- Spring Boot Loader Does Not Support RSA and EC Signed Jars [#​50297](https://github.com/spring-projects/spring-boot/issues/50297)
- Meter registries are not removed from the global registry when the context is closed [#​50286](https://github.com/spring-projects/spring-boot/issues/50286)
- Nullable annotations from AbstractErrorController.getErrorAttributes are not aligned with implementation [#​50265](https://github.com/spring-projects/spring-boot/pull/50265)
- EndpointRequest links matcher unnecessarily matches HTTP methods other than GET [#​50260](https://github.com/spring-projects/spring-boot/issues/50260)
- Actuator's '/cloudfoundryapplication' endpoint does not work if restrictive CORS configuration is provided using a bean named corsConfigurationSource [#​50257](https://github.com/spring-projects/spring-boot/issues/50257)
- ThreadPoolTaskScheduleBuilder unnecessarily loses precision when configuring await termination time [#​50233](https://github.com/spring-projects/spring-boot/issues/50233)
- NimbusJwtDecoder silently accepts unknown values for spring.security.oauth2.resourceserver.jwt.jws-algorithms [#​50227](https://github.com/spring-projects/spring-boot/issues/50227)
- Apply HTML escaping to timestamp attribute in Whitelabel error page [#​50215](https://github.com/spring-projects/spring-boot/issues/50215)
- Setting server.servlet.session.cookie.partitioned=true has no effect when using Tomcat [#​50201](https://github.com/spring-projects/spring-boot/issues/50201)
#### :notebook\_with\_decorative\_cover: Documentation
- Fix reference to Gradle documentation for module replacement [#​50646](https://github.com/spring-projects/spring-boot/issues/50646)
- Document SSL reloading with Let's Encrypt [#​50629](https://github.com/spring-projects/spring-boot/issues/50629)
- Remove the use of Optional from Data Neo4j repository examples [#​50621](https://github.com/spring-projects/spring-boot/issues/50621)
- Fix typos in documentation [#​50619](https://github.com/spring-projects/spring-boot/issues/50619)
- Clarify dependency requirement for Bean Validation support [#​50613](https://github.com/spring-projects/spring-boot/issues/50613)
- Document Java 25 requirement for AOT cache [#​50484](https://github.com/spring-projects/spring-boot/issues/50484)
- Add links for Java CAS Client Spring Boot Starter [#​50281](https://github.com/spring-projects/spring-boot/pull/50281)
- Document known testcontainers lifecycle issues [#​50219](https://github.com/spring-projects/spring-boot/issues/50219)
- Document adding multiple connectors for Jetty [#​50217](https://github.com/spring-projects/spring-boot/issues/50217)
- Polish InvalidConfigurationPropertyValueException constructor javadoc [#​50213](https://github.com/spring-projects/spring-boot/issues/50213)
- Fix typo in Spring Security OAuth2 client registration documentation [#​50198](https://github.com/spring-projects/spring-boot/issues/50198)
#### :hammer: Dependency Upgrades
- Upgrade to [Caffeine 3.2.4](https://github.com/ben-manes/caffeine/releases/tag/v3.2.4) [#​50322](https://github.com/spring-projects/spring-boot/issues/50322)
- Upgrade to Cassandra Driver 4.19.3 [#​50681](https://github.com/spring-projects/spring-boot/issues/50681)
- Upgrade to Glassfish JAXB 4.0.9 [#​50682](https://github.com/spring-projects/spring-boot/issues/50682)
- Upgrade to Groovy 5.0.6 [#​50324](https://github.com/spring-projects/spring-boot/issues/50324)
- Upgrade to Hibernate 7.2.19.Final [#​50733](https://github.com/spring-projects/spring-boot/issues/50733)
- Upgrade to Jackson 2 Bom 2.21.4 [#​50684](https://github.com/spring-projects/spring-boot/issues/50684)
- Upgrade to Jackson Bom 3.1.4 [#​50685](https://github.com/spring-projects/spring-boot/issues/50685)
- Upgrade to Jakarta Json Bind 3.0.2 [#​50686](https://github.com/spring-projects/spring-boot/issues/50686)
- Upgrade to [Jakarta XML Bind 4.0.5](https://github.com/jakartaee/jaxb-api/releases/tag/4.0.5) [#​50328](https://github.com/spring-projects/spring-boot/issues/50328)
- Upgrade to Jaxen 2.0.6 [#​50717](https://github.com/spring-projects/spring-boot/issues/50717)
- Upgrade to [Jetty 12.1.10](https://github.com/jetty/jetty.project/releases/tag/jetty-12.1.10) [#​50688](https://github.com/spring-projects/spring-boot/issues/50688)
- Upgrade to Jetty Reactive HTTPClient 4.1.5 [#​50718](https://github.com/spring-projects/spring-boot/issues/50718)
- Upgrade to jOOQ 3.19.35 [#​50719](https://github.com/spring-projects/spring-boot/issues/50719)
- Upgrade to [Liquibase 5.0.3](https://github.com/liquibase/liquibase/releases/tag/v5.0.3) [#​50554](https://github.com/spring-projects/spring-boot/issues/50554)
- Upgrade to Logback 1.5.34 [#​50689](https://github.com/spring-projects/spring-boot/issues/50689)
- Upgrade to [Maven Enforcer Plugin 3.6.3](https://github.com/apache/maven-enforcer/releases/tag/enforcer-3.6.3) [#​50555](https://github.com/spring-projects/spring-boot/issues/50555)
- Upgrade to [Maven Failsafe Plugin 3.5.6](https://github.com/apache/maven-surefire/releases/tag/surefire-3.5.6) [#​50690](https://github.com/spring-projects/spring-boot/issues/50690)
- Upgrade to [Maven Surefire Plugin 3.5.6](https://github.com/apache/maven-surefire/releases/tag/surefire-3.5.6) [#​50691](https://github.com/spring-projects/spring-boot/issues/50691)
- Upgrade to [Micrometer 1.16.6](https://github.com/micrometer-metrics/micrometer/releases/tag/v1.16.6) [#​50535](https://github.com/spring-projects/spring-boot/issues/50535)
- Upgrade to [Micrometer Tracing 1.6.6](https://github.com/micrometer-metrics/tracing/releases/tag/v1.6.6) [#​50536](https://github.com/spring-projects/spring-boot/issues/50536)
- Upgrade to [Neo4j Java Driver 6.1.0](https://github.com/neo4j/neo4j-java-driver/releases/tag/6.1.0) [#​50556](https://github.com/spring-projects/spring-boot/issues/50556)
- Upgrade to Netty 4.2.15.Final [#​50692](https://github.com/spring-projects/spring-boot/issues/50692)
- Upgrade to [Postgresql 42.7.11](https://github.com/pgjdbc/pgjdbc/releases/tag/REL42.7.11) [#​50332](https://github.com/spring-projects/spring-boot/issues/50332)
- Upgrade to [R2DBC MySQL 1.4.2](https://github.com/asyncer-io/r2dbc-mysql/releases/tag/r2dbc-mysql-1.4.2) [#​50333](https://github.com/spring-projects/spring-boot/issues/50333)
- Upgrade to [Reactor Bom 2025.0.6](https://github.com/reactor/reactor/releases/tag/2025.0.6) [#​50537](https://github.com/spring-projects/spring-boot/issues/50537)
- Upgrade to SAAJ Impl 3.0.6 [#​50720](https://github.com/spring-projects/spring-boot/issues/50720)
- Upgrade to SLF4J 2.0.18 [#​50558](https://github.com/spring-projects/spring-boot/issues/50558)
- Upgrade to [Spring AMQP 4.0.4](https://github.com/spring-projects/spring-amqp/releases/tag/v4.0.4) [#​50538](https://github.com/spring-projects/spring-boot/issues/50538)
- Upgrade to [Spring Batch 6.0.4](https://github.com/spring-projects/spring-batch/releases/tag/v6.0.4) [#​50539](https://github.com/spring-projects/spring-boot/issues/50539)
- Upgrade to [Spring Data Bom 2025.1.6](https://github.com/spring-projects/spring-data-bom/releases/tag/2025.1.6) [#​50540](https://github.com/spring-projects/spring-boot/issues/50540)
- Upgrade to [Spring Framework 7.0.8](https://github.com/spring-projects/spring-framework/releases/tag/v7.0.8) [#​50541](https://github.com/spring-projects/spring-boot/issues/50541)
- Upgrade to [Spring GraphQL 2.0.4](https://github.com/spring-projects/spring-graphql/releases/tag/v2.0.4) [#​50740](https://github.com/spring-projects/spring-boot/issues/50740)
- Upgrade to [Spring HATEOAS 3.0.4](https://github.com/spring-projects/spring-hateoas/releases/tag/3.0.4) [#​50542](https://github.com/spring-projects/spring-boot/issues/50542)
- Upgrade to [Spring Integration 7.0.5](https://github.com/spring-projects/spring-integration/releases/tag/v7.0.5) [#​50543](https://github.com/spring-projects/spring-boot/issues/50543)
- Upgrade to [Spring Kafka 4.0.6](https://github.com/spring-projects/spring-kafka/releases/tag/v4.0.6) [#​50544](https://github.com/spring-projects/spring-boot/issues/50544)
- Upgrade to [Spring LDAP 4.0.4](https://github.com/spring-projects/spring-ldap/releases/tag/4.0.4) [#​50545](https://github.com/spring-projects/spring-boot/issues/50545)
- Upgrade to [Spring Pulsar 2.0.6](https://github.com/spring-projects/spring-pulsar/releases/tag/v2.0.6) [#​50546](https://github.com/spring-projects/spring-boot/issues/50546)
- Upgrade to [Spring RESTDocs 4.0.1](https://github.com/spring-projects/spring-restdocs/releases/tag/v4.0.1) [#​50547](https://github.com/spring-projects/spring-boot/issues/50547)
- Upgrade to [Spring Security 7.0.6](https://github.com/spring-projects/spring-security/releases/tag/7.0.6) [#​50548](https://github.com/spring-projects/spring-boot/issues/50548)
- Upgrade to [Spring Session 4.0.4](https://github.com/spring-projects/spring-session/releases/tag/4.0.4) [#​50549](https://github.com/spring-projects/spring-boot/issues/50549)
- Upgrade to [Spring WS 5.0.2](https://github.com/spring-projects/spring-ws/releases/tag/v5.0.2) [#​50550](https://github.com/spring-projects/spring-boot/issues/50550)
- Upgrade to [Tomcat 11.0.22](https://tomcat.apache.org/tomcat-11.0-doc/changelog.html) [#​50335](https://github.com/spring-projects/spring-boot/issues/50335)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@​Abdlatif-nabgha](https://github.com/Abdlatif-nabgha), [@​DragonFSKY](https://github.com/DragonFSKY), [@​Kapil-chn7](https://github.com/Kapil-chn7), [@​Kimgyuilli](https://github.com/Kimgyuilli), [@​SJvaca30](https://github.com/SJvaca30), [@​SebTardif](https://github.com/SebTardif), [@​ares333](https://github.com/ares333), [@​codingkiddo](https://github.com/codingkiddo), [@​dlwldnjs1009](https://github.com/dlwldnjs1009), [@​henriquejsza](https://github.com/henriquejsza), [@​igormukhin](https://github.com/igormukhin), [@​johnnypwong](https://github.com/johnnypwong), [@​kwondh5217](https://github.com/kwondh5217), [@​leestana01](https://github.com/leestana01), [@​mheath](https://github.com/mheath), [@​mmoayyed](https://github.com/mmoayyed), [@​msridhar](https://github.com/msridhar), [@​ngocnhan-tran1996](https://github.com/ngocnhan-tran1996), [@​nosan](https://github.com/nosan), [@​quaff](https://github.com/quaff), [@​scordio](https://github.com/scordio), [@​vinhhieu21](https://github.com/vinhhieu21), [@​won-seoop](https://github.com/won-seoop), and [@​zxuhan](https://github.com/zxuhan)
### [`v4.0.6`](https://github.com/spring-projects/spring-boot/releases/tag/v4.0.6)
[Compare Source](https://github.com/spring-projects/spring-boot/compare/v4.0.5...v4.0.6)
#### :lady\_beetle: Bug Fixes
- Default security is misconfigured when spring-boot-actuator-autoconfigure is present and spring-boot-health is not [#​50188](https://github.com/spring-projects/spring-boot/issues/50188)
- Elasticsearch Rest5Client auto-configuration misconfigures underlying HTTP client [#​50187](https://github.com/spring-projects/spring-boot/issues/50187)
- ApplicationPidFileWriter does not handle symlinks correctly [#​50185](https://github.com/spring-projects/spring-boot/issues/50185)
- RandomValuePropertySource is not suitable for secrets [#​50183](https://github.com/spring-projects/spring-boot/issues/50183)
- Cassandra auto-configuration misconfigures CqlSessionBuilder [#​50180](https://github.com/spring-projects/spring-boot/issues/50180)
- ApplicationTemp does not handle symlinks correctly [#​50178](https://github.com/spring-projects/spring-boot/issues/50178)
- Remote DevTools performs comparison incorrectly [#​50176](https://github.com/spring-projects/spring-boot/issues/50176)
- spring.rabbitmq.ssl.verify-hostname is applied inconsistently [#​50174](https://github.com/spring-projects/spring-boot/issues/50174)
- Whole number values are ignored when configuring min and max expected values and SLO boundaries for a distribution summary meter [#​50077](https://github.com/spring-projects/spring-boot/issues/50077)
- Classic starters are missing several modules [#​50071](https://github.com/spring-projects/spring-boot/issues/50071)
- Module spring-boot-resttestclient is missing from spring-boot-starter-test-classic [#​50069](https://github.com/spring-projects/spring-boot/pull/50069)
- Annotations like `@Ssl` don't work on `@Bean` methods when using `@ServiceConnection` [#​50064](https://github.com/spring-projects/spring-boot/issues/50064)
- EnversRevisionRepositoriesRegistrar should reuse `@EnableEnversRepositories` rather than configuring the JPA counterpart [#​50039](https://github.com/spring-projects/spring-boot/issues/50039)
- WebFlux Cloud Foundry links endpoint includes query string from received request in resolved links [#​50017](https://github.com/spring-projects/spring-boot/issues/50017)
- Imports on a containing test class are ignored when a nested class has imports [#​50012](https://github.com/spring-projects/spring-boot/issues/50012)
- With spring.jackson.use-jackson2-defaults set to true, FAIL\_ON\_UNKNOWN\_PROPERTIES is enabled [#​49951](https://github.com/spring-projects/spring-boot/issues/49951)
- 500 response from env endpoint when supplied pattern is invalid [#​49946](https://github.com/spring-projects/spring-boot/issues/49946)
- Reactive MongoDB starter has a transitive dependency on the synchronous MongoDB driver [#​49945](https://github.com/spring-projects/spring-boot/issues/49945)
- HTTP method is lost when configuring excludes in EndpointRequest [#​49943](https://github.com/spring-projects/spring-boot/issues/49943)
- Honor HttpMethod for reactive additional endpoint paths [#​49880](https://github.com/spring-projects/spring-boot/issues/49880)
- Docker Compose support doesn't work with apache/artemis image [#​49869](https://github.com/spring-projects/spring-boot/issues/49869)
- Docker Compose support doesn't work with apache/activemq image [#​49866](https://github.com/spring-projects/spring-boot/issues/49866)
- Spring Security's PathPatternRequestMatcher.Builder is not auto-configured when using WebMvcTest and spring-boot-security-test [#​49854](https://github.com/spring-projects/spring-boot/issues/49854)
- API versioning path strategy should be applied path last as it is not meant to yield [#​49800](https://github.com/spring-projects/spring-boot/issues/49800)
#### :notebook\_with\_decorative\_cover: Documentation
- Update docs to encourage Java fundamentals for beginners that prefer to learn that way [#​50146](https://github.com/spring-projects/spring-boot/issues/50146)
- HTTP Service Interface Clients still document that API versioning can be configured via properties [#​50126](https://github.com/spring-projects/spring-boot/issues/50126)
- Link to the observability section of the Lettuce documentation is broken [#​50097](https://github.com/spring-projects/spring-boot/issues/50097)
- Javadoc for StaticResourceLocation.FAVICON doesn't describe icons location [#​50085](https://github.com/spring-projects/spring-boot/issues/50085)
- MySamlRelyingPartyConfiguration is missing a Kotlin sample [#​50024](https://github.com/spring-projects/spring-boot/issues/50024)
- Incorrect default value for management.httpexchanges.recording.include in configuration metadata [#​50019](https://github.com/spring-projects/spring-boot/issues/50019)
- Link to the Kubernetes documentation when discussing startup probes [#​50015](https://github.com/spring-projects/spring-boot/issues/50015)
- Typo in JdbcSessionAutoConfiguration Javadoc [#​49873](https://github.com/spring-projects/spring-boot/pull/49873)
- Clarify that configuration property default values are not available through the Environment [#​49851](https://github.com/spring-projects/spring-boot/issues/49851)
- Document the need for Liquibase and Flyway starters [#​49839](https://github.com/spring-projects/spring-boot/pull/49839)
- Kafka documentation refers to deprecated JSON serializer and deserializer classes [#​49826](https://github.com/spring-projects/spring-boot/pull/49826)
#### :hammer: Dependency Upgrades
- Upgrade to Elasticsearch Client 9.2.8 [#​50027](https://github.com/spring-projects/spring-boot/issues/50027)
- Upgrade to Groovy 5.0.5 [#​49911](https://github.com/spring-projects/spring-boot/issues/49911)
- Upgrade to Hibernate 7.2.12.Final [#​50134](https://github.com/spring-projects/spring-boot/issues/50134)
- Upgrade to Jackson Bom 3.1.2 [#​50051](https://github.com/spring-projects/spring-boot/issues/50051)
- Upgrade to [Jaxen 2.0.1](https://github.com/jaxen-xpath/jaxen/releases/tag/v2.0.1) [#​50104](https://github.com/spring-projects/spring-boot/issues/50104)
- Upgrade to [Jaybird 6.0.5](https://github.com/FirebirdSQL/jaybird/releases/tag/v6.0.5) [#​49914](https://github.com/spring-projects/spring-boot/issues/49914)
- Upgrade to [Jetty 12.1.8](https://github.com/jetty/jetty.project/releases/tag/jetty-12.1.8) [#​49915](https://github.com/spring-projects/spring-boot/issues/49915)
- Upgrade to [jOOQ 3.19.32](https://github.com/jOOQ/jOOQ/releases/tag/version-3.19.32) [#​50105](https://github.com/spring-projects/spring-boot/issues/50105)
- Upgrade to [Log4j2 2.25.4](https://github.com/apache/logging-log4j2/releases/tag/rel%2F2.25.4) [#​49916](https://github.com/spring-projects/spring-boot/issues/49916)
- Upgrade to Lombok 1.18.46 [#​50150](https://github.com/spring-projects/spring-boot/issues/50150)
- Upgrade to [MariaDB 3.5.8](https://mariadb.com/kb/en/mariadb-connector-j-3-5-8-release-notes) [#​49917](https://github.com/spring-projects/spring-boot/issues/49917)
- Upgrade to [Micrometer 1.16.5](https://github.com/micrometer-metrics/micrometer/releases/tag/v1.16.5) [#​49972](https://github.com/spring-projects/spring-boot/issues/49972)
- Upgrade to [Micrometer Tracing 1.6.5](https://github.com/micrometer-metrics/tracing/releases/tag/v1.6.5) [#​49973](https://github.com/spring-projects/spring-boot/issues/49973)
- Upgrade to [MongoDB 5.6.5](https://github.com/mongodb/mongo-java-driver/releases/tag/r5.6.5) [#​50028](https://github.com/spring-projects/spring-boot/issues/50028)
- Upgrade to [MySQL 9.7.0](https://dev.mysql.com/doc/relnotes/connector-j/en/news-9-7-0.html) [#​50159](https://github.com/spring-projects/spring-boot/issues/50159)
- Upgrade to Neo4j Java Driver 6.0.5 [#​50075](https://github.com/spring-projects/spring-boot/issues/50075)
- Upgrade to [Reactor Bom 2025.0.5](https://github.com/reactor/reactor/releases/tag/2025.0.5) [#​49974](https://github.com/spring-projects/spring-boot/issues/49974)
- Upgrade to [Spring AMQP 4.0.3](https://github.com/spring-projects/spring-amqp/releases/tag/v4.0.3) [#​49975](https://github.com/spring-projects/spring-boot/issues/49975)
- Upgrade to [Spring Data Bom 2025.1.5](https://github.com/spring-projects/spring-data-bom/releases/tag/2025.1.5) [#​49976](https://github.com/spring-projects/spring-boot/issues/49976)
- Upgrade to [Spring Framework 7.0.7](https://github.com/spring-projects/spring-framework/releases/tag/v7.0.7) [#​49977](https://github.com/spring-projects/spring-boot/issues/49977)
- Upgrade to [Spring GraphQL 2.0.3](https://github.com/spring-projects/spring-graphql/releases/tag/v2.0.3) [#​49978](https://github.com/spring-projects/spring-boot/issues/49978)
- Upgrade to [Spring Kafka 4.0.5](https://github.com/spring-projects/spring-kafka/releases/tag/v4.0.5) [#​49979](https://github.com/spring-projects/spring-boot/issues/49979)
- Upgrade to [Spring LDAP 4.0.3](https://github.com/spring-projects/spring-ldap/releases/tag/4.0.3) [#​49980](https://github.com/spring-projects/spring-boot/issues/49980)
- Upgrade to [Spring Pulsar 2.0.5](https://github.com/spring-projects/spring-pulsar/releases/tag/v2.0.5) [#​49981](https://github.com/spring-projects/spring-boot/issues/49981)
- Upgrade to [Spring Security 7.0.5](https://github.com/spring-projects/spring-security/releases/tag/7.0.5) [#​49982](https://github.com/spring-projects/spring-boot/issues/49982)
- Upgrade to [Spring Session 4.0.3](https://github.com/spring-projects/spring-session/releases/tag/4.0.3) [#​49983](https://github.com/spring-projects/spring-boot/issues/49983)
- Upgrade to [Testcontainers 2.0.5](https://github.com/testcontainers/testcontainers-java/releases/tag/2.0.5) [#​50135](https://github.com/spring-projects/spring-boot/issues/50135)
- Upgrade to Thymeleaf 3.1.5.RELEASE [#​50152](https://github.com/spring-projects/spring-boot/issues/50152)
- Upgrade to Thymeleaf Extras SpringSecurity 3.1.5.RELEASE [#​50153](https://github.com/spring-projects/spring-boot/issues/50153)
- Upgrade to [Tomcat 11.0.21](https://tomcat.apache.org/tomcat-11.0-doc/changelog.html) [#​49918](https://github.com/spring-projects/spring-boot/issues/49918)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@​GollapudiSrikanth](https://github.com/GollapudiSrikanth), [@​MohammedGhallab](https://github.com/MohammedGhallab), [@​bachhs](https://github.com/bachhs), [@​dlwldnjs1009](https://github.com/dlwldnjs1009), [@​edwardsre](https://github.com/edwardsre), [@​kodama-kcc](https://github.com/kodama-kcc), [@​kwondh5217](https://github.com/kwondh5217), [@​ppapaj](https://github.com/ppapaj), [@​quaff](https://github.com/quaff), [@​refeccd](https://github.com/refeccd), [@​scordio](https://github.com/scordio), and [@​xxxxxxjun](https://github.com/xxxxxxjun)
### [`v4.0.5`](https://github.com/spring-projects/spring-boot/releases/tag/v4.0.5)
[Compare Source](https://github.com/spring-projects/spring-boot/compare/v4.0.4...v4.0.5)
#### :lady\_beetle: Bug Fixes
- Test starter for Spring Integration does not include Spring Integration test module [#​49784](https://github.com/spring-projects/spring-boot/issues/49784)
- Some sliced tests that import TransactionAutoConfiguration do not import TransactionManagerCustomizationAutoConfiguration [#​49782](https://github.com/spring-projects/spring-boot/issues/49782)
- WebSocket messaging's task executors are only auto-configured and stompWebSocketHandlerMapping is only forced to be eager when using Jackson [#​49753](https://github.com/spring-projects/spring-boot/issues/49753)
- WebSocket app fails to start when Jackson is on the classpath but there's no JsonMapper bean [#​49749](https://github.com/spring-projects/spring-boot/issues/49749)
- Metadata annotation processor ignores method-level `@NestedConfigurationProperty` when using constructor binding [#​49738](https://github.com/spring-projects/spring-boot/issues/49738)
- Override of property in external 'application.properties' or 'application.yaml' is ignored [#​49731](https://github.com/spring-projects/spring-boot/issues/49731)
- NativeImageResourceProvider does not find Flyway migration scripts in subdirectories [#​49706](https://github.com/spring-projects/spring-boot/issues/49706)
- Add `@ConditionalOnWebApplication` to NettyReactiveWebServerAutoConfiguration [#​49695](https://github.com/spring-projects/spring-boot/pull/49695)
- `@GraphQlTest` does not include `@ControllerAdvice` [#​49672](https://github.com/spring-projects/spring-boot/issues/49672)
#### :notebook\_with\_decorative\_cover: Documentation
- Fix incorrect indefinite articles in Javadoc [#​49727](https://github.com/spring-projects/spring-boot/issues/49727)
- Add some more Kotlin examples and trivial style fixes [#​49714](https://github.com/spring-projects/spring-boot/issues/49714)
- Overhaul Spring Session documentation following modularization [#​49704](https://github.com/spring-projects/spring-boot/issues/49704)
#### :hammer: Dependency Upgrades
- Upgrade to Brave 6.3.1 [#​49763](https://github.com/spring-projects/spring-boot/issues/49763)
- Upgrade to Jackson 2 Bom 2.21.2 [#​49764](https://github.com/spring-projects/spring-boot/issues/49764)
- Upgrade to jOOQ 3.19.31 [#​49765](https://github.com/spring-projects/spring-boot/issues/49765)
- Upgrade to Netty 4.2.12.Final [#​49794](https://github.com/spring-projects/spring-boot/issues/49794)
- Upgrade to Tomcat 11.0.20 [#​49767](https://github.com/spring-projects/spring-boot/issues/49767)
- Upgrade to Zipkin Reporter 3.5.3 [#​49762](https://github.com/spring-projects/spring-boot/issues/49762)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@​Joowon-Seo](https://github.com/Joowon-Seo), [@​deejay1](https://github.com/deejay1), [@​dlwldnjs1009](https://github.com/dlwldnjs1009), [@​kwondh5217](https://github.com/kwondh5217), [@​ljrmorgan](https://github.com/ljrmorgan), and [@​quaff](https://github.com/quaff)
### [`v4.0.4`](https://github.com/spring-projects/spring-boot/releases/tag/v4.0.4)
[Compare Source](https://github.com/spring-projects/spring-boot/compare/v4.0.3...v4.0.4)
#### :warning: Attention Required
- OpenTelemetry's ZipkinSpanExporter has been deprecated and its support will be removed in Spring Boot 4.2. [#​49453](https://github.com/spring-projects/spring-boot/issues/49453)
- Jackson 2 has been upgraded to 2.21.1 in response to the Jackson team ending support for Jackson 2.20.x. [#​49389](https://github.com/spring-projects/spring-boot/issues/49389)
- Jackson has been upgraded to 3.1.0 in response to the Jackson team ending support for Jackson 3.0.x. [#​49383](https://github.com/spring-projects/spring-boot/issues/49383)
- The default value for `server.tomcat.max-part-count` has been increased from 10 to 50. This aligns it with Tomcat's own default and the default in Spring Boot 3.x. [#​49311](https://github.com/spring-projects/spring-boot/issues/49311)
#### :lady\_beetle: Bug Fixes
- EndpointRequest request matcher for health groups is too complex [#​49649](https://github.com/spring-projects/spring-boot/issues/49649)
- "/cloudfoundryapplication" web path is not limited to Actuator [#​49646](https://github.com/spring-projects/spring-boot/issues/49646)
- Fix EndpointRequest.toLinks() when base-path is '/' [#​49617](https://github.com/spring-projects/spring-boot/issues/49617)
- Docker fails when a 'tcp\://' address ends with a slash (for example 'tcp\://docker:2375/') [#​49596](https://github.com/spring-projects/spring-boot/issues/49596)
- RSocket exposes duplicate endpoint for websocket setups [#​49593](https://github.com/spring-projects/spring-boot/issues/49593)
- Failure analysis for a missing mail sender is misleading [#​49582](https://github.com/spring-projects/spring-boot/pull/49582)
- SpringBootContextLoader mentions class that no longer exists in message for classes or locations assertion [#​49535](https://github.com/spring-projects/spring-boot/issues/49535)
- Ordering of 'spring.config.import' is inconsistent when defined in environment or system properties [#​49482](https://github.com/spring-projects/spring-boot/issues/49482)
- "spring.main.cloud-platform=none" does not disable cloud features [#​49479](https://github.com/spring-projects/spring-boot/issues/49479)
- SSL support with Docker Compose does not work as documented [#​49385](https://github.com/spring-projects/spring-boot/issues/49385)
- Auto-configuration overrides authorization server configuration applied by Customizer<HttpSecurity> beans [#​49367](https://github.com/spring-projects/spring-boot/issues/49367)
- Using `@AutoConfigureWebTestClient` prevents separate configuration of spring.test.webtestclient.timeout from taking effect [#​49344](https://github.com/spring-projects/spring-boot/issues/49344)
- NoSuchMethodException when forcing the use of Log4J2LoggingSystem using org.springframework.boot.logging.LoggingSystem system property [#​49343](https://github.com/spring-projects/spring-boot/pull/49343)
- RouterFunctions descriptions in Actuator do not support nesting [#​49302](https://github.com/spring-projects/spring-boot/issues/49302)
- Maven plugin does not set '-parameters' option when processing AOT code [#​49295](https://github.com/spring-projects/spring-boot/issues/49295)
- HTTP Service Interface Client doesn't work in a native image due to missing property binding [#​49274](https://github.com/spring-projects/spring-boot/issues/49274)
- ErrorPageRegistrarBeanPostProcessor is not auto-configured in war deployments and the ErrorPageCustomizer is not applied [#​49176](https://github.com/spring-projects/spring-boot/pull/49176)
- Missing starter for spring-boot-restdocs [#​48289](https://github.com/spring-projects/spring-boot/issues/48289)
#### :notebook\_with\_decorative\_cover: Documentation
- Document support for Java 26 [#​49604](https://github.com/spring-projects/spring-boot/issues/49604)
- List all supported colors when describing color-coded log output [#​49562](https://github.com/spring-projects/spring-boot/issues/49562)
- Improve EndpointRequest matcher documentation [#​49520](https://github.com/spring-projects/spring-boot/issues/49520)
- Clarify that running is the only supported input state when triggering a Quartz job through the Actuator endpoint [#​49514](https://github.com/spring-projects/spring-boot/issues/49514)
- Document security considerations for forwarded headers in cloud deployments [#​49507](https://github.com/spring-projects/spring-boot/issues/49507)
- Tutorial in the reference guide has outdated instructions [#​49429](https://github.com/spring-projects/spring-boot/issues/49429)
- Document additional repositories required for shibboleth.net [#​49392](https://github.com/spring-projects/spring-boot/issues/49392)
- Javadoc of JettyHttpClientBuilder refers to the wrong type [#​49387](https://github.com/spring-projects/spring-boot/issues/49387)
- Example spring-devtools.properties file is shown in the wrong format [#​49362](https://github.com/spring-projects/spring-boot/issues/49362)
- Clarify inferred relationships between OAuth 2 registrations and providers [#​49327](https://github.com/spring-projects/spring-boot/issues/49327)
- Mention using org.springframework.boot.aot Gradle plugin directly for AOT processing with the JVM [#​49321](https://github.com/spring-projects/spring-boot/issues/49321)
- Remove superfluous semi-colon from read timeout configuration example for HTTP service interface clients [#​49306](https://github.com/spring-projects/spring-boot/pull/49306)
- Update CLI's INSTALL.txt to reflect Groovy no longer being bundled [#​49298](https://github.com/spring-projects/spring-boot/issues/49298)
- JDK requirement for the CLI still refers to Java 8 [#​49293](https://github.com/spring-projects/spring-boot/issues/49293)
- Java and Kotlin samples of an environment post processor are inconsistent [#​49287](https://github.com/spring-projects/spring-boot/issues/49287)
#### :hammer: Dependency Upgrades
- Upgrade to Commons Logging 1.3.6 [#​49545](https://github.com/spring-projects/spring-boot/issues/49545)
- Upgrade to DB2 JDBC 12.1.4.0 [#​49546](https://github.com/spring-projects/spring-boot/issues/49546)
- Upgrade to Elasticsearch Client 9.2.6 [#​49421](https://github.com/spring-projects/spring-boot/issues/49421)
- Upgrade to Hibernate 7.2.7.Final [#​49608](https://github.com/spring-projects/spring-boot/issues/49608)
- Upgrade to Jakarta XML WS 4.0.3 [#​49469](https://github.com/spring-projects/spring-boot/issues/49469)
- Upgrade to JBoss Logging 3.6.3.Final [#​49632](https://github.com/spring-projects/spring-boot/issues/49632)
- Upgrade to Jetty 12.1.7 [#​49470](https://github.com/spring-projects/spring-boot/issues/49470)
- Upgrade to Kafka 4.1.2 [#​49627](https://github.com/spring-projects/spring-boot/issues/49627)
- Upgrade to Liquibase 5.0.2 [#​49471](https://github.com/spring-projects/spring-boot/issues/49471)
- Upgrade to Lombok 1.18.44 [#​49575](https://github.com/spring-projects/spring-boot/issues/49575)
- Upgrade to Maven Failsafe Plugin 3.5.5 [#​49472](https://github.com/spring-projects/spring-boot/issues/49472)
- Upgrade to Maven Shade Plugin 3.6.2 [#​49473](https://github.com/spring-projects/spring-boot/issues/49473)
- Upgrade to Maven Surefire Plugin 3.5.5 [#​49474](https://github.com/spring-projects/spring-boot/issues/49474)
- Upgrade to Micrometer 1.16.4 [#​49413](https://github.com/spring-projects/spring-boot/issues/49413)
- Upgrade to Micrometer Tracing 1.6.4 [#​49414](https://github.com/spring-projects/spring-boot/issues/49414)
- Upgrade to MongoDB 5.6.4 [#​49422](https://github.com/spring-projects/spring-boot/issues/49422)
- Upgrade to Native Build Tools Plugin 0.11.5 [#​49475](https://github.com/spring-projects/spring-boot/issues/49475)
- Upgrade to Neo4j Java Driver 6.0.3 [#​49431](https://github.com/spring-projects/spring-boot/issues/49431)
- Upgrade to Pulsar 4.1.3 [#​49476](https://github.com/spring-projects/spring-boot/issues/49476)
- Upgrade to Reactor Bom 2025.0.4 [#​49415](https://github.com/spring-projects/spring-boot/issues/49415)
- Upgrade to Spring Batch 6.0.3 [#​49416](https://github.com/spring-projects/spring-boot/issues/49416)
- Upgrade to Spring Data Bom 2025.1.4 [#​49417](https://github.com/spring-projects/spring-boot/issues/49417)
- Upgrade to Spring Framework 7.0.6 [#​49418](https://github.com/spring-projects/spring-boot/issues/49418)
- Upgrade to Spring HATEOAS 3.0.3 [#​49587](https://github.com/spring-projects/spring-boot/issues/49587)
- Upgrade to Spring Integration 7.0.4 [#​49529](https://github.com/spring-projects/spring-boot/issues/49529)
- Upgrade to Spring Kafka 4.0.4 [#​49419](https://github.com/spring-projects/spring-boot/issues/49419)
- Upgrade to Spring Pulsar 2.0.4 [#​49420](https://github.com/spring-projects/spring-boot/issues/49420)
- Upgrade to Spring Security 7.0.4 [#​49530](https://github.com/spring-projects/spring-boot/issues/49530)
- Upgrade to Spring WS 5.0.1 [#​49531](https://github.com/spring-projects/spring-boot/issues/49531)
- Upgrade to Testcontainers 2.0.4 [#​49655](https://github.com/spring-projects/spring-boot/issues/49655)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@​FBibonne](https://github.com/FBibonne), [@​answndud](https://github.com/answndud), [@​bbbbooo](https://github.com/bbbbooo), [@​chandanv89](https://github.com/chandanv89), [@​giyeon95](https://github.com/giyeon95), [@​itsmevichu](https://github.com/itsmevichu), [@​jayychoi](https://github.com/jayychoi), [@​l2yujw](https://github.com/l2yujw), [@​ngocnhan-tran1996](https://github.com/ngocnhan-tran1996), [@​qnnn](https://github.com/qnnn), [@​quaff](https://github.com/quaff), and [@​sbrannen](https://github.com/sbrannen)
### [`v4.0.3`](https://github.com/spring-projects/spring-boot/releases/tag/v4.0.3)
[Compare Source](https://github.com/spring-projects/spring-boot/compare/v4.0.2...v4.0.3)
#### :star: New Features
- Add TWENTY\_SIX to JavaVersion enum [#​49193](https://github.com/spring-projects/spring-boot/issues/49193)
#### :lady\_beetle: Bug Fixes
- Jackson properties may not be applied correctly to RestClients [#​49223](https://github.com/spring-projects/spring-boot/issues/49223)
- ClassNotFoundException when using Actuator without spring-boot-health [#​49196](https://github.com/spring-projects/spring-boot/issues/49196)
- Using the OTel and Zipkin starters together creates invalid configuration [#​49183](https://github.com/spring-projects/spring-boot/issues/49183)
- Whitespace can be incorrectly removed when spring-boot-configuration-processor runs on multi-line javadoc [#​49060](https://github.com/spring-projects/spring-boot/issues/49060)
- Jackson2HttpMessageConvertersConfiguration uses ConditionOn Jackson3 XMLMapper class [#​49015](https://github.com/spring-projects/spring-boot/issues/49015)
- server.jetty.threads.max is ignored when using virtual threads [#​48989](https://github.com/spring-projects/spring-boot/issues/48989)
- Slice test includes fail to load when using spring-boot-starter-test-classic [#​48981](https://github.com/spring-projects/spring-boot/issues/48981)
- Docker credential helpers with file extensions cannot be executed on Windows [#​48979](https://github.com/spring-projects/spring-boot/issues/48979)
- Java version requirement check for native image is confusing if AOT didn't run [#​48963](https://github.com/spring-projects/spring-boot/issues/48963)
- TestPropertyValues.Pair.fromMapEntry(Entry\<String, String>) does not comply with its nullability contract [#​48948](https://github.com/spring-projects/spring-boot/issues/48948)
#### :notebook\_with\_decorative\_cover: Documentation
- Couchbase and Kafka are incorrectly listed as supporting SSL with Docker Compose [#​49212](https://github.com/spring-projects/spring-boot/issues/49212)
- Document that use of non idiomatic format for '`@Value`' still apply for environment variables [#​49109](https://github.com/spring-projects/spring-boot/issues/49109)
- Document naming convention for custom test-scoped starters [#​49017](https://github.com/spring-projects/spring-boot/issues/49017)
- Delay removal of Jackson 2 support until 4.3 at the earliest [#​49010](https://github.com/spring-projects/spring-boot/issues/49010)
- LICENSE.txt and NOTICE.txt files have the wrong content in the latest releases [#​49003](https://github.com/spring-projects/spring-boot/issues/49003)
- ApplicationContextAssert documents a non-existent assertion in getFailure() [#​48977](https://github.com/spring-projects/spring-boot/issues/48977)
- Highlight the importance of the preStop hook when configuring Kubernetes probes [#​48946](https://github.com/spring-projects/spring-boot/issues/48946)
#### :hammer: Dependency Upgrades
- Upgrade to AssertJ 3.27.7 [#​49095](https://github.com/spring-projects/spring-boot/issues/49095)
- Upgrade to Elasticsearch Client 9.2.5 [#​49184](https://github.com/spring-projects/spring-boot/issues/49184)
- Upgrade to Groovy 5.0.4 [#​49097](https://github.com/spring-projects/spring-boot/issues/49097)
- Upgrade to Hibernate 7.2.3.Final [#​49098](https://github.com/spring-projects/spring-boot/issues/49098)
- Upgrade to Hibernate 7.2.4.Final [#​49167](https://github.com/spring-projects/spring-boot/issues/49167)
- Upgrade to Jaybird 6.0.4 [#​49099](https://github.com/spring-projects/spring-boot/issues/49099)
- Upgrade to JBoss Logging 3.6.2.Final [#​49100](https://github.com/spring-projects/spring-boot/issues/49100)
- Upgrade to Jersey 4.0.2 [#​49101](https://github.com/spring-projects/spring-boot/issues/49101)
- Upgrade to Jetty 12.1.6 [#​49102](https://github.com/spring-projects/spring-boot/issues/49102)
- Upgrade to jOOQ 3.19.30 [#​49103](https://github.com/spring-projects/spring-boot/issues/49103)
- Upgrade to JUnit Jupiter 6.0.3 [#​49233](https://github.com/spring-projects/spring-boot/issues/49233)
- Upgrade to Logback 1.5.29 [#​49169](https://github.com/spring-projects/spring-boot/issues/49169)
- Upgrade to Logback 1.5.32 [#​49245](https://github.com/spring-projects/spring-boot/issues/49245)
- Upgrade to Micrometer 1.16.3 [#​49111](https://github.com/spring-projects/spring-boot/issues/49111)
- Upgrade to Micrometer Tracing 1.6.3 [#​49112](https://github.com/spring-projects/spring-boot/issues/49112)
- Upgrade to MongoDB 5.6.3 [#​49105](https://github.com/spring-projects/spring-boot/issues/49105)
- Upgrade to MySQL 9.6.0 [#​49106](https://github.com/spring-projects/spring-boot/issues/49106)
- Upgrade to Netty 4.2.10.Final [#​49107](https://github.com/spring-projects/spring-boot/issues/49107)
- Upgrade to Postgresql 42.7.10 [#​49202](https://github.com/spring-projects/spring-boot/issues/49202)
- Upgrade to Reactor Bom 2025.0.3 [#​49087](https://github.com/spring-projects/spring-boot/issues/49087)
- Upgrade to Spring Data Bom 2025.1.3 [#​49088](https://github.com/spring-projects/spring-boot/issues/49088)
- Upgrade to Spring Framework 7.0.5 [#​49216](https://github.com/spring-projects/spring-boot/issues/49216)
- Upgrade to Spring Integration 7.0.3 [#​49217](https://github.com/spring-projects/spring-boot/issues/49217)
- Upgrade to Spring Kafka 4.0.3 [#​49090](https://github.com/spring-projects/spring-boot/issues/49090)
- Upgrade to Spring LDAP 4.0.2 [#​49091](https://github.com/spring-projects/spring-boot/issues/49091)
- Upgrade to Spring Pulsar 2.0.3 [#​49092](https://github.com/spring-projects/spring-boot/issues/49092)
- Upgrade to Spring Security 7.0.3 [#​49093](https://github.com/spring-projects/spring-boot/issues/49093)
- Upgrade to Spring Session 4.0.2 [#​49094](https://github.com/spring-projects/spring-boot/issues/49094)
- Upgrade to Tomcat 11.0.18 [#​49108](https://github.com/spring-projects/spring-boot/issues/49108)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@​GaetanoCerciello](https://github.com/GaetanoCerciello), [@​dsyer](https://github.com/dsyer), [@​linkian209](https://github.com/linkian209), [@​nosan](https://github.com/nosan), [@​quaff](https://github.com/quaff), [@​scordio](https://github.com/scordio), and [@​srt](https://github.com/srt)
### [`v4.0.2`](https://github.com/spring-projects/spring-boot/releases/tag/v4.0.2)
[Compare Source](https://github.com/spring-projects/spring-boot/compare/v4.0.1...v4.0.2)
#### :warning: Noteworthy Changes
- The dependency on `org.eclipse.jetty.ee11:jetty-ee11-servlets` has been removed from `spring-boot-jetty` as it was unnecessary and unused. If your application code depends on a class from `jetty-ee11-servlets`, declare a dependency on it in your build configuration. [#​48677](https://github.com/spring-projects/spring-boot/issues/48677)
#### :lady\_beetle: Bug Fixes
- No TransactionAutoConfiguration with spring-boot-starter-kafka for Spring Boot 4 [#​48880](https://github.com/spring-projects/spring-boot/issues/48880)
- Evaluation of bean conditions unnecessarily queries the bean factory for types that are not present [#​48840](https://github.com/spring-projects/spring-boot/issues/48840)
- When a bean condition references a type that is not present, it appears as ? in the condition evaluation report [#​48838](https://github.com/spring-projects/spring-boot/issues/48838)
- SessionAutoConfiguration creates a DefaultCookieSerializer with a default SameSite of null instead of Lax [#​48830](https://github.com/spring-projects/spring-boot/issues/48830)
- Setting graphql schema location to "classpath\*:graphql/\*\*/" causes failure due to incorrectly packaged test resource [#​48829](https://github.com/spring-projects/spring-boot/pull/48829)
- Message interpolation by MVC and WebFlux's Validators does not work correctly in a native image [#​48828](https://github.com/spring-projects/spring-boot/issues/48828)
- CloudFoundry integration fails in Servlet-based web app without a dependency on spring-boot-starter-restclient [#​48826](https://github.com/spring-projects/spring-boot/issues/48826)
- RestTestClientAutoConfiguration and TestRestTemplateAutoConfiguration should be package-private [#​48820](https://github.com/spring-projects/spring-boot/issues/48820)
- SSL metrics are no longer auto-configured [#​48819](https://github.com/spring-projects/spring-boot/issues/48819)
- Actuator /info endpoint fails in Java 25 Native Image (VirtualThreadSchedulerMXBean support) [#​48812](https://github.com/spring-projects/spring-boot/issues/48812)
- DataSourceBuilder cannot create oracle.ucp.jdbc.PoolDataSourceImpl in a native image [#​48703](https://github.com/spring-projects/spring-boot/issues/48703)
- The spring-boot-cloudfoundry module should only have an optional dependency on spring-boot-security [#​48685](https://github.com/spring-projects/spring-boot/issues/48685)
- Application JAR created by extract command is not reproductible [#​48678](https://github.com/spring-projects/spring-boot/issues/48678)
- AOT processing of tests should not be disabled when 'skipTests' is set [#​48662](https://github.com/spring-projects/spring-boot/issues/48662)
- `@SpringBootTest`(webEnvironment = WebEnvironment.RANDOM\_PORT) is no longer applied to the management server [#​48653](https://github.com/spring-projects/spring-boot/issues/48653)
- Fix zero-length byte buffer in InspectedContent [#​48650](https://github.com/spring-projects/spring-boot/issues/48650)
- Can no longer override JacksonJsonHttpMessageConverter with ServerHttpMessageConvertersCustomizer [#​48635](https://github.com/spring-projects/spring-boot/issues/48635)
- HttpServiceClientProperties incorrectly uses the `@ConfigurationProperties` annotation on a LinkedHashMap class [#​48616](https://github.com/spring-projects/spring-boot/issues/48616)
- spring-boot-micrometer-tracing-opentelemetry fails if spring-boot-opentelemetry isn't there [#​48585](https://github.com/spring-projects/spring-boot/issues/48585)
- App fails to start with starter-webmvc and starter-zipkin [#​48581](https://github.com/spring-projects/spring-boot/issues/48581)
- Micrometer test modules should have an api dependency on micrometer-observation-test [#​48386](https://github.com/spring-projects/spring-boot/issues/48386)
#### :notebook\_with\_decorative\_cover: Documentation
- Fix typo in REST client documentation [#​48907](https://github.com/spring-projects/spring-boot/pull/48907)
- Remove duplicate word [#​48874](https://github.com/spring-projects/spring-boot/pull/48874)
- Document support for configuring arguments passed to Docker Compose [#​48806](https://github.com/spring-projects/spring-boot/issues/48806)
- The documentation related to EnvironmentPostProcessor links to deprecated interface [#​48803](https://github.com/spring-projects/spring-boot/issues/48803)
- Update documentation for Buildpack's AOT Cache support [#​48769](https://github.com/spring-projects/spring-boot/issues/48769)
- Correct docs to use new location for error handling configuration properties [#​48767](https://github.com/spring-projects/spring-boot/pull/48767)
- Document spring-boot-starter-cloudfoundry on Cloud Foundry Support Page [#​48675](https://github.com/spring-projects/spring-boot/issues/48675)
- Clarify javadoc to make it clear that HazelcastConfigCustomizer beans are only applied if Hazelcast is configured via a config file [#​48659](https://github.com/spring-projects/spring-boot/issues/48659)
- Example using excludeDevtools property should document that optional dependencies should be enabled [#​48641](https://github.com/spring-projects/spring-boot/issues/48641)
- Fix grammar and typos in the reference guide [#​48601](https://github.com/spring-projects/spring-boot/issues/48601)
- Update Tracing section for Spring Boot 4's modularity [#​48576](https://github.com/spring-projects/spring-boot/issues/48576)
#### :hammer: Dependency Upgrades
- Upgrade to Classmate 1.7.3 [#​48783](https://github.com/spring-projects/spring-boot/issues/48783)
- Upgrade to Elasticsearch Client 9.2.3 [#​48721](https://github.com/spring-projects/spring-boot/issues/48721)
- Upgrade to Hibernate 7.2.1.Final [#​48857](https://github.com/spring-projects/spring-boot/issues/48857)
- Upgrade to HttpClient5 5.5.2 [#​48784](https://github.com/spring-projects/spring-boot/issues/48784)
- Upgrade to Jackson 2 Bom 2.20.2 [#​48910](https://github.com/spring-projects/spring-boot/issues/48910)
- Upgrade to Jackson Bom 3.0.4 [#​48931](https://github.com/spring-projects/spring-boot/issues/48931)
- Upgrade to JUnit Jupiter 6.0.2 [#​48785](https://github.com/spring-projects/spring-boot/issues/48785)
- Upgrade to Lettuce 6.8.2.RELEASE [#​48859](https://github.com/spring-projects/spring-boot/issues/48859)
- Upgrade to Logback 1.5.24 [#​48786](https://github.com/spring-projects/spring-boot/issues/48786)
- Upgrade to Logback 1.5.25 [#​48885](https://github.com/spring-projects/spring-boot/issues/48885)
- Upgrade to Micrometer 1.16.2 [#​48712](https://github.com/spring-projects/spring-boot/issues/48712)
- Upgrade to Micrometer Tracing 1.6.2 [#​48713](https://github.com/spring-projects/spring-boot/issues/48713)
- Upgrade to Native Build Tools Plugin 0.11.4 [#​48911](https://github.com/spring-projects/spring-boot/issues/48911)
- Upgrade to Pooled JMS 3.1.9 [#​48787](https://github.com/spring-projects/spring-boot/issues/48787)
- Upgrade to Postgresql 42.7.9 [#​48886](https://github.com/spring-projects/spring-boot/issues/48886)
- Upgrade to R2DBC MSSQL 1.0.4.RELEASE [#​48858](https://github.com/spring-projects/spring-boot/issues/48858)
- Upgrade to Reactor Bom 2025.0.2 [#​48714](https://github.com/spring-projects/spring-boot/issues/48714)
- Upgrade to Spring AMQP 4.0.2 [#​48832](https://github.com/spring-projects/spring-boot/issues/48832)
- Upgrade to Spring Batch 6.0.2 [#​48715](https://github.com/spring-projects/spring-boot/issues/48715)
- Upgrade to Spring Data Bom 2025.1.2 [#​48716](https://github.com/spring-projects/spring-boot/issues/48716)
- Upgrade to Spring Framework 7.0.3 [#​48717](https://github.com/spring-projects/spring-boot/issues/48717)
- Upgrade to Spring GraphQL 2.0.2 [#​48718](https://github.com/spring-projects/spring-boot/issues/48718)
- Upgrade to Spring HATEOAS 3.0.2 [#​48834](https://github.com/spring-projects/spring-boot/issues/48834)
- Upgrade to Spring Integration 7.0.2 [#​48833](https://github.com/spring-projects/spring-boot/issues/48833)
- Upgrade to Spring Kafka 4.0.2 [#​48719](https://github.com/spring-projects/spring-boot/issues/48719)
- Upgrade to Spring Pulsar 2.0.2 [#​48720](https://github.com/spring-projects/spring-boot/issues/48720)
- Upgrade to WebJars Locator Lite 1.1.3 [#​48788](https://github.com/spring-projects/spring-boot/issues/48788)
- Upgrade to XML Maven Plugin 1.2.1 [#​48887](https://github.com/spring-projects/spring-boot/issues/48887)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@​GaoSSR](https://github.com/GaoSSR), [@​ShaunHaldane](https://github.com/ShaunHaldane), [@​Zuohuang-Cai](https://github.com/Zuohuang-Cai), [@​izeye](https://github.com/izeye), [@​mspiess](https://github.com/mspiess), [@​ngocnhan-tran1996](https://github.com/ngocnhan-tran1996), and [@​philipbolting](https://github.com/philipbolting)
### [`v4.0.1`](https://github.com/spring-projects/spring-boot/releases/tag/v4.0.1)
[Compare Source](https://github.com/spring-projects/spring-boot/compare/v4.0.0...v4.0.1)
#### :warning: Noteworthy Changes
- Hibernate has been upgraded to 7.2.0.Final in response to Hibernate 7.1 moving to limited support
- spring-boot-starter-kotlin-serialization has been renamed to to spring-boot-starter-kotlinx-serialization-json and spring-boot-starter-kotlin-serialization-test has been renamed to spring-boot-starter-kotlinx-serialization-json-test. This change aligns the starters' names with those of their respective modules
- Using TestRestTemplate now [requires a dependency on spring-boot-restclient](https://docs.spring.io/spring-boot/4.0-SNAPSHOT/reference/testing/spring-boot-applications.html#testing.spring-boot-applications.with-running-server)
#### :lady\_beetle: Bug Fixes
- JsonMixinModuleEntriesBeanRegistrationAotProcessor does not handle deprecated code [#​48564](https://github.com/spring-projects/spring-boot/issues/48564)
- JdbcSessionAutoConfiguration may not match when using the auto-configured DataSource [#​48552](https://github.com/spring-projects/spring-boot/pull/48552)
- `@ServiceConnection` for LgtmStackContainer fails when logging endpoint is configured due to multiple OtlpLoggingConnectionDetails beans [#​48536](https://github.com/spring-projects/spring-boot/issues/48536)
- WebApplicationType does not consider modules when deduced from classpath [#​48517](https://github.com/spring-projects/spring-boot/issues/48517)
- Spring Session auto-configuration fails in a war deployment as ServerProperties is not available [#​48493](https://github.com/spring-projects/spring-boot/issues/48493)
- Opentelemetry logging export requires actuator module [#​48488](https://github.com/spring-projects/spring-boot/issues/48488)
- RabbitHealthIndicator reports an error when version is missing from the connection's server properties [#​48487](https://github.com/spring-projects/spring-boot/issues/48487)
- Actuator Info class has inconsistent nullability annotations and cannot be built with null value [#​48480](https://github.com/spring-projects/spring-boot/pull/48480)
- Profiles retained during AOT processing are not configured in a native image [#​48476](https://github.com/spring-projects/spring-boot/issues/48476)
- Security matchers and WebServerNamespace resolution can fail with NoClassDefFoundError when used in a traditional WAR deployment [#​48388](https://github.com/spring-projects/spring-boot/issues/48388)
- HealthEndpointGroupMembershipValidator does not consider reactive health indicators causing NoSuchHealthContributorException to be thrown [#​48387](https://github.com/spring-projects/spring-boot/issues/48387)
- spring.jackson.default-property-inclusion is not applied to content inclusion [#​48343](https://github.com/spring-projects/spring-boot/issues/48343)
- TestRestTemplate.getRootUri() returns empty string [#​48330](https://github.com/spring-projects/spring-boot/issues/48330)
- Redis health check reports an error when redis\_version is missing from the INFO response [#​48328](https://github.com/spring-projects/spring-boot/issues/48328)
- Parent's MeterRegistry beans are closed when child context closes [#​48325](https://github.com/spring-projects/spring-boot/issues/48325)
- HttpMessageConverters picks up converter beans for both client and server [#​48310](https://github.com/spring-projects/spring-boot/issues/48310)
- Conditions to auto-configure a RestClient are outdated with the modularization [#​48308](https://github.com/spring-projects/spring-boot/issues/48308)
- A custom JwtTypeValidator that replaces the default can no longer be configured [#​48301](https://github.com/spring-projects/spring-boot/issues/48301)
- PropertiesRestClientHttpServiceGroupConfigurer has highest precedence, preventing other configurers from being ordered ahead of it [#​48296](https://github.com/spring-projects/spring-boot/issues/48296)
- SpringBootTest.UseMainMethod.WHEN\_AVAILABLE and ALWAYS are incompatible with package-private or parameter-less main method [#​48275](https://github.com/spring-projects/spring-boot/issues/48275)
- Conditions to auto-configure RestClient-based HTTP service clients are outdated with the modularization [#​48274](https://github.com/spring-projects/spring-boot/pull/48274)
- Starter for Kotlinx Serialization Json is misnamed [#​48262](https://github.com/spring-projects/spring-boot/issues/48262)
- ApplicationServletEnvironment is no longer configured in war deployments [#​48254](https://github.com/spring-projects/spring-boot/issues/48254)
- RestClient.Builder bean present in `@SpringBootTest` due to spring-boot-starter-webmvc-test, but missing at runtime without restclient starter [#​48253](https://github.com/spring-projects/spring-boot/issues/48253)
- ProblemDetail is rendered to XML incorrectly [#​48222](https://github.com/spring-projects/spring-boot/pull/48222)
#### :notebook\_with\_decorative\_cover: Documentation
- Harmonize Kotlin example for HTTP Service client support [#​48577](https://github.com/spring-projects/spring-boot/pull/48577)
- Document HttpMessageConverters detection changes in 4.0.1 [#​48574](https://github.com/spring-projects/spring-boot/issues/48574)
- Improve javadoc for when to use class names rather than class references [#​48569](https://github.com/spring-projects/spring-boot/issues/48569)
- Documentation has an outdated reference to the Jackson Kotlin Module [#​48534](https://github.com/spring-projects/spring-boot/issues/48534)
- Caching documentation should clarify how to use a no-op implementation to run a test suite [#​48532](https://github.com/spring-projects/spring-boot/issues/48532)
- Document that the default rolling policy for Log4j2 requires logging.file.path to be set [#​48527](https://github.com/spring-projects/spring-boot/issues/48527)
- Review documentation and migration guide about changes in `@AutoConfigureCache` [#​48522](https://github.com/spring-projects/spring-boot/issues/48522)
- License header in build samples is displayed in the reference documentation [#​48478](https://github.com/spring-projects/spring-boot/issues/48478)
- Configuring Two DataSources How-To code sample is inconsistent [#​48449](https://github.com/spring-projects/spring-boot/issues/48449)
- Fix links to source files on GitHub [#​48398](https://github.com/spring-projects/spring-boot/pull/48398)
- Documentation contains broken links to GitHub source files [#​48394](https://github.com/spring-projects/spring-boot/issues/48394)
- Document that org.aspectj.weaver.Advice must be on the classpath to enable support for Micrometer's annotations [#​48360](https://github.com/spring-projects/spring-boot/issues/48360)
- Correct the annotation in the Kotlin `@ConfigurationPropertiesSource` example [#​48357](https://github.com/spring-projects/spring-boot/pull/48357)
- Polish TestRestTemplate examples in the reference guide [#​48336](https://github.com/spring-projects/spring-boot/issues/48336)
- Documentation missing for LocalTestWebServer [#​48333](https://github.com/spring-projects/spring-boot/issues/48333)
- Update "Creating Your Own Starter" following modularisation [#​48317](https://github.com/spring-projects/spring-boot/issues/48317)
- Fix links to javadoc in the reference documentation [#​48300](https://github.com/spring-projects/spring-boot/issues/48300)
- Update references for RestTemplateCustomizer and RestTemplateBuilder classes in documentation [#​48295](https://github.com/spring-projects/spring-boot/pull/48295)
- Remove modules section of the README following modularisation [#​48291](https://github.com/spring-projects/spring-boot/issues/48291)
- Wrong number in Graceful Shutdown chapter [#​48284](https://github.com/spring-projects/spring-boot/issues/48284)
- Mention new spring-boot-h2console module when describing how to use H2 Console [#​48278](https://github.com/spring-projects/spring-boot/pull/48278)
- Clarify that `@EnableBatchProcessing` turns off all batch auto-configuration, including schema initialization [#​48266](https://github.com/spring-projects/spring-boot/issues/48266)
- Documented replacements for spring.jackson.generator and spring.jackson.parser are inverted [#​48255](https://github.com/spring-projects/spring-boot/pull/48255)
- Document the need for a JdbcDialect bean when using Spring Data JDBC and AOT [#​48240](https://github.com/spring-projects/spring-boot/issues/48240)
- Update reference documentation as Spring Batch's resourceless infrastructure means that it no longer always requires a DataSource [#​48233](https://github.com/spring-projects/spring-boot/issues/48233)
- Kotlin auto-configuration examples are not annotated with `@AutoConfiguration` [#​48228](https://github.com/spring-projects/spring-boot/issues/48228)
- Revise "Use Liquibase for test-only migrations" section in reference manual [#​48219](https://github.com/spring-projects/spring-boot/issues/48219)
- Infinispan Cache Documentation is outdated [#​48218](https://github.com/spring-projects/spring-boot/issues/48218)
- Removed max-attempts properties metadata don't have replacement [#​48206](https://github.com/spring-projects/spring-boot/issues/48206)
- Polish documentation on testing web applications and the various testing clients that are available [#​47948](https://github.com/spring-projects/spring-boot/issues/47948)
#### :hammer: Dependency Upgrades
- Upgrade to AspectJ 1.9.25.1 [#​48561](https://github.com/spring-projects/spring-boot/issues/48561)
- Upgrade to Elasticsearch Client 9.2.2 [#​48447](https://github.com/spring-projects/spring-boot/issues/48447)
- Upgrade to Groovy 5.0.3 [#​48460](https://github.com/spring-projects/spring-boot/issues/48460)
- Upgrade to Hibernate 7.2.0.Final [#​48518](https://github.com/spring-projects/spring-boot/issues/48518)
- Upgrade to Jackson Bom 3.0.3 [#​48462](https://github.com/spring-projects/spring-boot/issues/48462)
- Upgrade to Jetty 12.1.5 [#​48463](https://github.com/spring-projects/spring-boot/issues/48463)
- Upgrade to jOOQ 3.19.29 [#​48464](https://github.com/spring-projects/spring-boot/issues/48464)
- Upgrade to Json Path 2.10.0 [#​48553](https://github.com/spring-projects/spring-boot/issues/48553)
- Upgrade to Log4j2 2.25.3 [#​48551](https://github.com/spring-projects/spring-boot/issues/48551)
- Upgrade to MariaDB 3.5.7 [#​48562](https://github.com/spring-projects/spring-boot/issues/48562)
- Upgrade to Micrometer 1.16.1 [#​48433](https://github.com/spring-projects/spring-boot/issues/48433)
- Upgrade to Micrometer Tracing 1.6.1 [#​48434](https://github.com/spring-projects/spring-boot/issues/48434)
- Upgrade to MongoDB 5.6.2 [#​48501](https://github.com/spring-projects/spring-boot/issues/48501)
- Upgrade to Netty 4.2.9.Final [#​48544](https://github.com/spring-projects/spring-boot/issues/48544)
- Upgrade to Pooled JMS 3.1.8 [#​48563](https://github.com/spring-projects/spring-boot/issues/48563)
- Upgrade to Pulsar 4.1.2 [#​48465](https://github.com/spring-projects/spring-boot/issues/48465)
- Upgrade to Quartz 2.5.2 [#​48466](https://github.com/spring-projects/spring-boot/issues/48466)
- Upgrade to Reactor Bom 2025.0.1 [#​48435](https://github.com/spring-projects/spring-boot/issues/48435)
- Upgrade to Spring AMQP 4.0.1 [#​48436](https://github.com/spring-projects/spring-boot/issues/48436)
- Upgrade to Spring Batch 6.0.1 [#​48437](https://github.com/spring-projects/spring-boot/issues/48437)
- Upgrade to Spring Data Bom 2025.1.1 [#​48438](https://github.com/spring-projects/spring-boot/issues/48438)
- Upgrade to Spring Framework 7.0.2 [#​48439](https://github.com/spring-projects/spring-boot/issues/48439)
- Upgrade to Spring GraphQL 2.0.1 [#​48440](https://github.com/spring-projects/spring-boot/issues/48440)
- Upgrade to Spring HATEOAS 3.0.1 [#​48481](https://github.com/spring-projects/spring-boot/issues/48481)
- Upgrade to Spring Integration 7.0.1 [#​48482](https://github.com/spring-projects/spring-boot/issues/48482)
- Upgrade to Spring Kafka 4.0.1 [#​48441](https://github.com/spring-projects/spring-boot/issues/48441)
- Upgrade to Spring LDAP 4.0.1 [#​48442](https://github.com/spring-projects/spring-boot/issues/48442)
- Upgrade to Spring Pulsar 2.0.1 [#​48443](https://github.com/spring-projects/spring-boot/issues/48443)
- Upgrade to Spring Security 7.0.2 [#​48444](https://github.com/spring-projects/spring-boot/issues/48444)
- Upgrade to Spring Session 4.0.1 [#​48445](https://github.com/spring-projects/spring-boot/issues/48445)
- Upgrade to Testcontainers 2.0.3 [#​48545](https://github.com/spring-projects/spring-boot/issues/48545)
- Upgrade to Tomcat 11.0.15 [#​48467](https://github.com/spring-projects/spring-boot/issues/48467)
- Upgrade to UnboundID LDAPSDK 7.0.4 [#​48468](https://github.com/spring-projects/spring-boot/issues/48468)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@​Nhahan](https://github.com/Nhahan), [@​arey](https://github.com/arey), [@​banseok1216](https://github.com/banseok1216), [@​berry120](https://github.com/berry120), [@​candrews](https://github.com/candrews), [@​dmitrysulman](https://github.com/dmitrysulman), [@​geopark021](https://github.com/geopark021), [@​hktechn0](https://github.com/hktechn0), [@​igslznev](https://github.com/igslznev), [@​jwalter](https://github.com/jwalter), [@​kzander91](https://github.com/kzander91), [@​michaldo](https://github.com/michaldo), [@​mzeijen](https://github.com/mzeijen), [@​ngocnhan-tran1996](https://github.com/ngocnhan-tran1996), [@​noojung](https://github.com/noojung), [@​scottfrederick](https://github.com/scottfrederick), [@​vpavic](https://github.com/vpavic), and [@​youngledo](https://github.com/youngledo)
### [`v4.0.0`](https://github.com/spring-projects/spring-boot/releases/tag/v4.0.0)
[Compare Source](https://github.com/spring-projects/spring-boot/compare/v3.5.16...v4.0.0)
Full [release notes for Spring Boot 4.0](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Release-Notes) are available on the wiki. There is also [a migration guide](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide) to help you upgrade from Spring Boot 3.5.
#### :star: New Features
- Change tomcat and jetty runtime modules to starters [#​48175](https://github.com/spring-projects/spring-boot/issues/48175)
- Rename spring-boot-kotlin-serialization to align with the name of the Kotlinx module that it pulls in [#​48076](https://github.com/spring-projects/spring-boot/issues/48076)
#### :lady\_beetle: Bug Fixes
- Error properties are a general web concern and should not be located beneath server.\* [#​48201](https://github.com/spring-projects/spring-boot/issues/48201)
- With both Jackson 2 and 3 on the classpath, `@JsonTest` fails due to duplicate jacksonTesterFactoryBean [#​48198](https://github.com/spring-projects/spring-boot/issues/48198)
- Gradle war task does not exclude starter POMs from lib-provided [#​48197](https://github.com/spring-projects/spring-boot/issues/48197)
- spring.test.webclient.mockrestserviceserver.enabled is not aligned with its module's name [#​48193](https://github.com/spring-projects/spring-boot/issues/48193)
- SslMeterBinder doesn't register metrics for dynamically added bundles if no bundles exist at bind time [#​48182](https://github.com/spring-projects/spring-boot/issues/48182)
- Properties bound in the child management context ignore the parent's environment prefix [#​48177](https://github.com/spring-projects/spring-boot/issues/48177)
- ssl.chain.expiry metrics doesn't update for dynamically registered SSL bundles [#​48171](https://github.com/spring-projects/spring-boot/issues/48171)
- Starter for spring-boot-micrometer-metrics is missing [#​48161](https://github.com/spring-projects/spring-boot/issues/48161)
- Elasticsearch client's sniffer functionality should not be enabled by default [#​48155](https://github.com/spring-projects/spring-boot/issues/48155)
- spring-boot-starter-elasticsearch should depend on elasticsearch-java [#​48141](https://github.com/spring-projects/spring-boot/pull/48141)
- Auto-configuration exclusions are checked using a different class loader to the one that loads auto-configuration classes [#​48132](https://github.com/spring-projects/spring-boot/issues/48132)
- New arm64 macbooks fail to bootBuildImage due to incorrect platform image [#​48128](https://github.com/spring-projects/spring-boot/issues/48128)
- Properties for configuring an isolated JsonMapper or ObjectMapper are incorrectly named [#​48116](https://github.com/spring-projects/spring-boot/issues/48116)
- Buildpack fails with recent Docker installs due to hardcoded version in URL [#​48103](https://github.com/spring-projects/spring-boot/issues/48103)
- Image building may fail when specifying a platform if an image has already been built with a different platform [#​48099](https://github.com/spring-projects/spring-boot/issues/48099)
- Default values of Kotlinx Serialization JSON configuration properties are not documented [#​48097](https://github.com/spring-projects/spring-boot/issues/48097)
- Custom XML converters should override defaults in HttpMessageConverters [#​48096](https://github.com/spring-projects/spring-boot/issues/48096)
- Kotlin serialization is used too aggressively when other JSON libraries are available [#​48070](https://github.com/spring-projects/spring-boot/issues/48070)
- PortInUseException incorrectly thrown on failure to bind port due to Netty IP misconfiguration [#​48059](https://github.com/spring-projects/spring-boot/issues/48059)
- Auto-configured JCacheMetrics cannot be customized [#​48057](https://github.com/spring-projects/spring-boot/issues/48057)
- WebSecurityCustomizer beans are excluded by WebMvcTest [#​48055](https://github.com/spring-projects/spring-boot/issues/48055)
- Deprecated EnvironmentPostProcessor does not resolve arguments [#​48047](https://github.com/spring-projects/spring-boot/issues/48047)
- RetryPolicySettings should refer to maxRetries, not maxAttempts [#​48023](https://github.com/spring-projects/spring-boot/issues/48023)
- Devtools Restarter does not work with a parameterless main method [#​47996](https://github.com/spring-projects/spring-boot/issues/47996)
- Dependency management for Kafka should not manage Scala 2.12 libraries [#​47991](https://github.com/spring-projects/spring-boot/pull/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](https://github.com/spring-projects/spring-boot/issues/47983)
- spring-boot-starter-data-mongodb-reactive has dependency on reactor-test [#​47982](https://github.com/spring-projects/spring-boot/issues/47982)
- Support for ReactiveElasticsearchClient is in the wrong module [#​47848](https://github.com/spring-projects/spring-boot/issues/47848)
#### :notebook\_with\_decorative\_cover: Documentation
- Removed property spring.test.webclient.register-rest-template is still documented [#​48199](https://github.com/spring-projects/spring-boot/issues/48199)
- Mention support for detecting AWS ECS in "Deploying to the Cloud" [#​48170](https://github.com/spring-projects/spring-boot/pull/48170)
- Revise AWS section of "Deploying to the Cloud" in reference manual [#​48163](https://github.com/spring-projects/spring-boot/issues/48163)
- Fix typo in PortInUseException Javadoc [#​48134](https://github.com/spring-projects/spring-boot/issues/48134)
- Correct section about required setters in "Type-safe Configuration Properties" [#​48131](https://github.com/spring-projects/spring-boot/issues/48131)
- Use since attribute in configuration properties deprecation consistently [#​48122](https://github.com/spring-projects/spring-boot/issues/48122)
- Document EndpointJsonMapper and management.endpoints.jackson.isolated-json-mapper [#​48115](https://github.com/spring-projects/spring-boot/issues/48115)
- Document support for configuring servlet context init parameters using properties [#​48112](https://github.com/spring-projects/spring-boot/issues/48112)
- Some configuration properties are not documented in the appendix [#​48095](https://github.com/spring-projects/spring-boot/issues/48095)
- Clarify how warnings about soon-to-expire SSL certificates are reported [#​48063](https://github.com/spring-projects/spring-boot/issues/48063)
- Document how to use ContextPropagatingTaskDecorator for propagating trace context over thread boundaries [#​48053](https://github.com/spring-projects/spring-boot/issues/48053)
- Document the level of support for the OpenTelemetry APIs [#​47960](https://github.com/spring-projects/spring-boot/issues/47960)
- Document that you need to build with Java 25 for buildpack build-image Graal support [#​45501](https://github.com/spring-projects/spring-boot/issues/45501)
#### :hammer: Dependency Upgrades
- Upgrade to Cassandra Driver 4.19.2 [#​48184](https://github.com/spring-projects/spring-boot/issues/48184)
- Upgrade to DB2 JDBC 12.1.3.0 [#​48087](https://github.com/spring-projects/spring-boot/issues/48087)
- Upgrade to Elasticsearch Client 9.2.1 [#​48137](https://github.com/spring-projects/spring-boot/issues/48137)
- Upgrade to GraphQL Java 25.0 [#​48034](https://github.com/spring-projects/spring-boot/issues/48034)
- Upgrade to Hibernate 7.1.8.Final [#​48150](https://github.com/spring-projects/spring-boot/issues/48150)
- Upgrade to Jackson Bom 3.0.2 [#​48089](https://github.com/spring-projects/spring-boot/issues/48089)
- Upgrade to Jetty 12.1.4 [#​48120](https://github.com/spring-projects/spring-boot/issues/48120)
- Upgrade to Jetty Reactive HTTPClient 4.1.4 [#​48151](https://github.com/spring-projects/spring-boot/issues/48151)
- Upgrade to jOOQ 3.19.28 [#​48090](https://github.com/spring-projects/spring-boot/issues/48090)
- Upgrade to Kafka 4.1.1 [#​48185](https://github.com/spring-projects/spring-boot/issues/48185)
- Upgrade to Logback 1.5.21 [#​48091](https://github.com/spring-projects/spring-boot/issues/48091)
- Upgrade to Micrometer 1.16.0 [#​47820](https://github.com/spring-projects/spring-boot/issues/47820)
- Upgrade to Micrometer Tracing 1.6.0 [#​47821](https://github.com/spring-projects/spring-boot/issues/47821)
- Upgrade to MySQL 9.5.0 [#​48092](https://github.com/spring-projects/spring-boot/issues/48092)
- Upgrade to Native Build Tools Plugin 0.11.3 [#​48051](https://github.com/spring-projects/spring-boot/issues/48051)
- Upgrade to Neo4j Java Driver 6.0.2 [#​47997](https://github.com/spring-projects/spring-boot/issues/47997)
- Upgrade to Prometheus Client 1.4.3 [#​48093](https://github.com/spring-projects/spring-boot/issues/48093)
- Upgrade to Reactor Bom 2025.0.0 [#​47822](https://github.com/spring-projects/spring-boot/issues/47822)
- Upgrade to Spring AMQP 4.0.0 [#​47823](https://github.com/spring-projects/spring-boot/issues/47823)
- Upgrade to Spring Batch 6.0.0 [#​47834](https://github.com/spring-projects/spring-boot/issues/47834)
- Upgrade to Spring Data Bom 2025.1.0 [#​47824](https://github.com/spring-projects/spring-boot/issues/47824)
- Upgrade to Spring Framework 7.0.1 [#​48168](https://github.com/spring-projects/spring-boot/issues/48168)
- Upgrade to Spring GraphQL 2.0.0 [#​47826](https://github.com/spring-projects/spring-boot/issues/47826)
- Upgrade to Spring HATEOAS 3.0.0 [#​47827](https://github.com/spring-projects/spring-boot/issues/47827)
- Upgrade to Spring Integration 7.0.0 [#​47828](https://github.com/spring-projects/spring-boot/issues/47828)
- Upgrade to Spring Kafka 4.0.0 [#​47829](https://github.com/spring-projects/spring-boot/issues/47829)
- Upgrade to Spring LDAP 4.0.0 [#​47999](https://github.com/spring-projects/spring-boot/issues/47999)
- Upgrade to Spring Pulsar 2.0.0 [#​47830](https://github.com/spring-projects/spring-boot/issues/47830)
- Upgrade to Spring RESTDocs 4.0.0 [#​47831](https://github.com/spring-projects/spring-boot/issues/47831)
- Upgrade to Spring Security 7.0.0 [#​47832](https://github.com/spring-projects/spring-boot/issues/47832)
- Upgrade to Spring Session 4.0.0 [#​48000](https://github.com/spring-projects/spring-boot/issues/48000)
- Upgrade to Spring WS 5.0.0 [#​47833](https://github.com/spring-projects/spring-boot/issues/47833)
- Upgrade to Testcontainers 2.0.2 [#​48152](https://github.com/spring-projects/spring-boot/issues/48152)
- Upgrade to Tomcat 11.0.14 [#​48094](https://github.com/spring-projects/spring-boot/issues/48094)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@​K-jun98](https://github.com/K-jun98), [@​TerryTaoYY](https://github.com/TerryTaoYY), [@​filiphr](https://github.com/filiphr), [@​hojooo](https://github.com/hojooo), [@​linw-bai](https://github.com/linw-bai), [@​nosan](https://github.com/nosan), [@​scottfrederick](https://github.com/scottfrederick), [@​stevearmstrong-dev](https://github.com/stevearmstrong-dev), [@​stewue](https://github.com/stewue), and [@​vpavic](https://github.com/vpavic)
### [`v3.5.16`](https://github.com/spring-projects/spring-boot/releases/tag/v3.5.16)
[Compare Source](https://github.com/spring-projects/spring-boot/compare/v3.5.15...v3.5.16)
#### :hammer: Dependency Upgrades
- Upgrade to [Spring AMQP 3.2.12](https://github.com/spring-projects/spring-amqp/releases/tag/v3.2.12) [#​50818](https://github.com/spring-projects/spring-boot/issues/50818)
- Upgrade to [Spring Data Bom 2025.0.13](https://github.com/spring-projects/spring-data-bom/releases/tag/2025.0.13) [#​50819](https://github.com/spring-projects/spring-boot/issues/50819)
- Upgrade to [Spring Integration 6.5.10](https://github.com/spring-projects/spring-integration/releases/tag/v6.5.10) [#​50820](https://github.com/spring-projects/spring-boot/issues/50820)
### [`v3.5.15`](https://github.com/spring-projects/spring-boot/releases/tag/v3.5.15)
[Compare Source](https://github.com/spring-projects/spring-boot/compare/v3.5.14...v3.5.15)
#### :lady\_beetle: Bug Fixes
- Artemis auto-configuration uses a predictable default location for the embedded broker's data [#​50743](https://github.com/spring-projects/spring-boot/issues/50743)
- MailSender auto-configuration does not enable hostname verification [#​50742](https://github.com/spring-projects/spring-boot/issues/50742)
- SSL should not be enabled when a SSL bundle is overridden to an empty string [#​50624](https://github.com/spring-projects/spring-boot/pull/50624)
- Layer written outside the output location of '//' exception is thrown when using extract layers in root directory [#​50501](https://github.com/spring-projects/spring-boot/pull/50501)
- Docker Compose support does not restore thread interrupt flag when catching InterruptedException [#​50451](https://github.com/spring-projects/spring-boot/pull/50451)
- RabbitProperties enables SSL even when spring.rabbitmq.ssl.bundle is overridden to an empty string [#​50429](https://github.com/spring-projects/spring-boot/pull/50429)
- GraphQL WebSocket support does not configure allowed origins [#​50391](https://github.com/spring-projects/spring-boot/issues/50391)
- Buildpack module does not validate long-to-int casts [#​50382](https://github.com/spring-projects/spring-boot/pull/50382)
- MappingsEndpoint reports the context's own ID as parentId when a parent exists [#​50373](https://github.com/spring-projects/spring-boot/pull/50373)
- Created StackTracePrinter instances have no access to the Environment [#​50303](https://github.com/spring-projects/spring-boot/pull/50303)
- NullPointerException in reactor-netty SniProvider when SSL bundle uses client-auth or server truststore without server-name-bundles [#​50301](https://github.com/spring-projects/spring-boot/pull/50301)
- Spring Boot Loader Does Not Support RSA and EC Signed Jars [#​50292](https://github.com/spring-projects/spring-boot/issues/50292)
- ConfigurationPropertiesReportEndpoint exposes AOP proxy internals [#​50273](https://github.com/spring-projects/spring-boot/pull/50273)
- Actuator's '/cloudfoundryapplication' endpoint does not work if restrictive CORS configuration is provided using a bean named corsConfigurationSource [#​50254](https://github.com/spring-projects/spring-boot/issues/50254)
- Meter registries are not removed from the global registry when the context is closed [#​50235](https://github.com/spring-projects/spring-boot/pull/50235)
- ThreadPoolTaskScheduleBuilder unnecessarily loses precision when configuring await termination time [#​50225](https://github.com/spring-projects/spring-boot/pull/50225)
- Apply HTML escaping to timestamp attribute in Whitelabel error page [#​50205](https://github.com/spring-projects/spring-boot/pull/50205)
- NimbusJwtDecoder silently accepts unknown values for spring.security.oauth2.resourceserver.jwt.jws-algorithms [#​50118](https://github.com/spring-projects/spring-boot/pull/50118)
- EndpointRequest links matcher unnecessarily matches HTTP methods other than GET [#​50095](https://github.com/spring-projects/spring-boot/pull/50095)
#### :notebook\_with\_decorative\_cover: Documentation
- Fix reference to Gradle documentation for module replacement [#​50641](https://github.com/spring-projects/spring-boot/pull/50641)
- Remove the use of Optional from Data Neo4j repository examples [#​50600](https://github.com/spring-projects/spring-boot/pull/50600)
- Fix typos in documentation [#​50593](https://github.com/spring-projects/spring-boot/pull/50593)
- Document Java 25 requirement for AOT cache [#​50482](https://github.com/spring-projects/spring-boot/pull/50482)
- Clarify dependency requirement for Bean Validation support [#​50290](https://github.com/spring-projects/spring-boot/pull/50290)
- Document SSL reloading with Let's Encrypt [#​50222](https://github.com/spring-projects/spring-boot/pull/50222)
- Polish InvalidConfigurationPropertyValueException constructor javadoc [#​50212](https://github.com/spring-projects/spring-boot/issues/50212)
- Document known testcontainers lifecycle issues [#​50210](https://github.com/spring-projects/spring-boot/pull/50210)
- Document configuring multiple connectors with Jetty [#​50206](https://github.com/spring-projects/spring-boot/pull/50206)
- Fix typo in Spring Security OAuth2 client registration documentation [#​50193](https://github.com/spring-projects/spring-boot/pull/50193)
#### :hammer: Dependency Upgrades
- Upgrade to [Caffeine 3.2.4](https://github.com/ben-manes/caffeine/releases/tag/v3.2.4) [#​50308](https://github.com/spring-projects/spring-boot/issues/50308)
- Upgrade to Cassandra Driver 4.19.3 [#​50670](https://github.com/spring-projects/spring-boot/issues/50670)
- Upgrade to Glassfish JAXB 4.0.9 [#​50671](https://github.com/spring-projects/spring-boot/issues/50671)
- Upgrade to Groovy 4.0.32 [#​50310](https://github.com/spring-projects/spring-boot/issues/50310)
- Upgrade to Hibernate 6.6.53.Final [#​50721](https://github.com/spring-projects/spring-boot/issues/50721)
- Upgrade to Jackson Bom 2.21.4 [#​50673](https://github.com/spring-projects/spring-boot/issues/50673)
- Upgrade to Jakarta Json Bind 3.0.2 [#​50674](https://github.com/spring-projects/spring-boot/issues/50674)
- Upgrade to [Jakarta XML Bind 4.0.5](https://github.com/jakartaee/jaxb-api/releases/tag/4.0.5) [#​50313](https://github.com/spring-projects/spring-boot/issues/50313)
- Upgrade to Jaxen 2.0.6 [#​50722](https://github.com/spring-projects/spring-boot/issues/50722)
- Upgrade to Jetty 12.0.36 [#​50676](https://github.com/spring-projects/spring-boot/issues/50676)
- Upgrade to Jetty Reactive HTTPClient 4.0.14 [#​50723](https://github.com/spring-projects/spring-boot/issues/50723)
- Upgrade to jOOQ 3.19.35 [#​50724](https://github.com/spring-projects/spring-boot/issues/50724)
- Upgrade to Logback 1.5.34 [#​50677](https://github.com/spring-projects/spring-boot/issues/50677)
- Upgrade to [Maven Failsafe Plugin 3.5.6](https://github.com/apache/maven-surefire/releases/tag/surefire-3.5.6) [#​50678](https://github.com/spring-projects/spring-boot/issues/50678)
- Upgrade to [Maven Surefire Plugin 3.5.6](https://github.com/apache/maven-surefire/releases/tag/surefire-3.5.6) [#​50679](https://github.com/spring-projects/spring-boot/issues/50679)
- Upgrade to [Micrometer 1.15.12](https://github.com/micrometer-metrics/micrometer/releases/tag/v1.15.12) [#​50511](https://github.com/spring-projects/spring-boot/issues/50511)
- Upgrade to [Micrometer Tracing 1.5.12](https://github.com/micrometer-metrics/tracing/releases/tag/v1.5.12) [#​50512](https://github.com/spring-projects/spring-boot/issues/50512)
- Upgrade to Netty 4.1.135.Final [#​50680](https://github.com/spring-projects/spring-boot/issues/50680)
- Upgrade to [Postgresql 42.7.11](https://github.com/pgjdbc/pgjdbc/releases/tag/REL42.7.11) [#​50317](https://github.com/spring-projects/spring-boot/issues/50317)
- Upgrade to Pulsar 4.0.11 [#​50725](https://github.com/spring-projects/spring-boot/issues/50725)
- Upgrade to [R2DBC MySQL 1.4.2](https://github.com/asyncer-io/r2dbc-mysql/releases/tag/r2dbc-mysql-1.4.2) [#​50319](https://github.com/spring-projects/spring-boot/issues/50319)
- Upgrade to [Reactor Bom 2024.0.18](https://github.com/reactor/reactor/releases/tag/2024.0.18) [#​50513](https://github.com/spring-projects/spring-boot/issues/50513)
- Upgrade to SAAJ Impl 3.0.6 [#​50726](https://github.com/spring-projects/spring-boot/issues/50726)
- Upgrade to SLF4J 2.0.18 [#​50533](https://github.com/spring-projects/spring-boot/issues/50533)
- Upgrade to [Spring AMQP 3.2.11](https://github.com/spring-projects/spring-amqp/releases/tag/v3.2.11) [#​50514](https://github.com/spring-projects/spring-boot/issues/50514)
- Upgrade to [Spring Authorization Server 1.5.8](https://github.com/spring-projects/spring-authorization-server/releases/tag/1.5.8) [#​50515](https://github.com/spring-projects/spring-boot/issues/50515)
- Upgrade to [Spring Batch 5.2.6](https://github.com/spring-projects/spring-batch/releases/tag/v5.2.6) [#​50516](https://github.com/spring-projects/spring-boot/issues/50516)
- Upgrade to [Spring Data Bom 2025.0.12](https://github.com/spring-projects/spring-data-bom/releases/tag/2025.0.12) [#​50517](https://github.com/spring-projects/spring-boot/issues/50517)
- Upgrade to [Spring Framework 6.2.19](https://github.com/spring-projects/spring-framework/releases/tag/v6.2.19) [#​50518](https://github.com/spring-projects/spring-boot/issues/50518)
- Upgrade to [Spring GraphQL 1.4.6](https://github.com/spring-projects/spring-graphql/releases/tag/v1.4.6) [#​50739](https://github.com/spring-projects/spring-boot/issues/50739)
- Upgrade to [Spring HATEOAS 2.5.3](https://github.com/spring-projects/spring-hateoas/releases/tag/2.5.3) [#​50519](https://github.com/spring-projects/spring-boot/issues/50519)
- Upgrade to [Spring Integration 6.5.9](https://github.com/spring-projects/spring-integration/releases/tag/v6.5.9) [#​50520](https://github.com/spring-projects/spring-boot/issues/50520)
- Upgrade to [Spring Kafka 3.3.16](https://github.com/spring-projects/spring-kafka/releases/tag/v3.3.16) [#​50521](https://github.com/spring-projects/spring-boot/issues/50521)
- Upgrade to [Spring LDAP 3.3.8](https://github.com/spring-projects/spring-ldap/releases/tag/3.3.8) [#​50522](https://github.com/spring-projects/spring-boot/issues/50522)
- Upgrade to [Spring Pulsar 1.2.18](https://github.com/spring-projects/spring-pulsar/releases/tag/v1.2.18) [#​50523](https://github.com/spring-projects/spring-boot/issues/50523)
- Upgrade to [Spring RESTDocs 3.0.6](https://github.com/spring-projects/spring-restdocs/releases/tag/v3.0.6) [#​50524](https://github.com/spring-projects/spring-boot/issues/50524)
- Upgrade to [Spring Retry 2.0.13](https://github.com/spring-projects/spring-retry/releases/tag/v2.0.13) [#​50525](https://github.com/spring-projects/spring-boot/issues/50525)
- Upgrade to [Spring Security 6.5.11](https://github.com/spring-projects/spring-security/releases/tag/6.5.11) [#​50526](https://github.com/spring-projects/spring-boot/issues/50526)
- Upgrade to [Spring Session 3.5.7](https://github.com/spring-projects/spring-session/releases/tag/3.5.7) [#​50527](https://github.com/spring-projects/spring-boot/issues/50527)
- Upgrade to [Spring WS 4.1.4](https://github.com/spring-projects/spring-ws/releases/tag/v4.1.4) [#​50528](https://github.com/spring-projects/spring-boot/issues/50528)
- Upgrade to [Tomcat 10.1.55](https://tomcat.apache.org/tomcat-10.1-doc/changelog.html) [#​50534](https://github.com/spring-projects/spring-boot/issues/50534)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@​Abdlatif-nabgha](https://github.com/Abdlatif-nabgha), [@​DragonFSKY](https://github.com/DragonFSKY), [@​Kapil-chn7](https://github.com/Kapil-chn7), [@​SJvaca30](https://github.com/SJvaca30), [@​SebTardif](https://github.com/SebTardif), [@​ares333](https://github.com/ares333), [@​codingkiddo](https://github.com/codingkiddo), [@​dlwldnjs1009](https://github.com/dlwldnjs1009), [@​henriquejsza](https://github.com/henriquejsza), [@​igormukhin](https://github.com/igormukhin), [@​johnnypwong](https://github.com/johnnypwong), [@​kwondh5217](https://github.com/kwondh5217), [@​leestana01](https://github.com/leestana01), [@​mheath](https://github.com/mheath), [@​ngocnhan-tran1996](https://github.com/ngocnhan-tran1996), [@​nosan](https://github.com/nosan), [@​quaff](https://github.com/quaff), [@​scordio](https://github.com/scordio), [@​vinhhieu21](https://github.com/vinhhieu21), [@​won-seoop](https://github.com/won-seoop), and [@​zxuhan](https://github.com/zxuhan)
### [`v3.5.14`](https://github.com/spring-projects/spring-boot/releases/tag/v3.5.14)
[Compare Source](https://github.com/spring-projects/spring-boot/compare/v3.5.13...v3.5.14)
#### :lady\_beetle: Bug Fixes
- ApplicationPidFileWriter does not handle symlinks correctly [#​50173](https://github.com/spring-projects/spring-boot/issues/50173)
- RandomValuePropertySource is not suitable for secrets [#​50172](https://github.com/spring-projects/spring-boot/issues/50172)
- Cassandra auto-configuration misconfigures CqlSessionBuilder [#​50171](https://github.com/spring-projects/spring-boot/issues/50171)
- ApplicationTemp does not handle symlinks correctly [#​50170](https://github.com/spring-projects/spring-boot/issues/50170)
- Remote DevTools performs comparison incorrectly [#​50169](https://github.com/spring-projects/spring-boot/issues/50169)
- spring.rabbitmq.ssl.verify-hostname is applied inconsistently [#​50168](https://github.com/spring-projects/spring-boot/issues/50168)
- EnversRevisionRepositoriesRegistrar should reuse `@EnableEnversRepositories` rather than configuring the JPA counterpart [#​50035](https://github.com/spring-projects/spring-boot/pull/50035)
- Annotations like `@Ssl` don't work on `@Bean` methods when using `@ServiceConnection` [#​50033](https://github.com/spring-projects/spring-boot/pull/50033)
- Whole number values are ignored when configuring min and max expected values and SLO boundaries for a distribution summary meter [#​50021](https://github.com/spring-projects/spring-boot/issues/50021)
- WebFlux Cloud Foundry links endpoint includes query string from received request in resolved links [#​50008](https://github.com/spring-projects/spring-boot/pull/50008)
- 500 response from env endpoint when supplied pattern is invalid [#​49942](https://github.com/spring-projects/spring-boot/pull/49942)
- HTTP method is lost when configuring excludes in EndpointRequest [#​49885](https://github.com/spring-projects/spring-boot/pull/49885)
- Docker Compose support doesn't work with apache/artemis image [#​49865](https://github.com/spring-projects/spring-boot/issues/49865)
- Honor HttpMethod for reactive additional endpoint paths [#​49864](https://github.com/spring-projects/spring-boot/pull/49864)
- Docker Compose support doesn't work with apache/activemq image [#​49863](https://github.com/spring-projects/spring-boot/issues/49863)
- Imports on a containing test class are ignored when a nested class has imports [#​49860](https://github.com/spring-projects/spring-boot/issues/49860)
#### :notebook\_with\_decorative\_cover: Documentation
- Link to the observability section of the Lettuce documentation is broken [#​50092](https://github.com/spring-projects/spring-boot/pull/50092)
- Javadoc for StaticResourceLocation.FAVICON doesn't describe icons location [#​50083](https://github.com/spring-projects/spring-boot/issues/50083)
- MySamlRelyingPartyConfiguration is missing a Kotlin sample [#​50023](https://github.com/spring-projects/spring-boot/issues/50023)
- Incorrect default value for management.httpexchanges.recording.include in configuration metadata [#​50010](https://github.com/spring-projects/spring-boot/pull/50010)
- Link to the Kubernetes documentation when discussing startup probes [#​50007](https://github.com/spring-projects/spring-boot/issues/50007)
- Update docs to encourage Java fundamentals for beginners that prefer to learn that way [#​49895](https://github.com/spring-projects/spring-boot/issues/49895)
- Clarify that configuration property default values are not available through the Environment [#​49835](https://github.com/spring-projects/spring-boot/pull/49835)
#### :hammer: Dependency Upgrades
- Upgrade to Groovy 4.0.31 [#​49905](https://github.com/spring-projects/spring-boot/issues/49905)
- Upgrade to Hibernate 6.6.49.Final [#​50140](https://github.com/spring-projects/spring-boot/issues/50140)
- Upgrade to [Jaxen 2.0.1](https://github.com/jaxen-xpath/jaxen/releases/tag/v2.0.1) [#​50109](https://github.com/spring-projects/spring-boot/issues/50109)
- Upgrade to [Jaybird 6.0.5](https://github.com/FirebirdSQL/jaybird/releases/tag/v6.0.5) [#​49907](https://github.com/spring-projects/spring-boot/issues/49907)
- Upgrade to [Jetty 12.0.34](https://github.com/jetty/jetty.project/releases/tag/jetty-12.0.34) [#​49908](https://github.com/spring-projects/spring-boot/issues/49908)
- Upgrade to [jOOQ 3.19.32](https://github.com/jOOQ/jOOQ/releases/tag/version-3.19.32) [#​50110](https://github.com/spring-projects/spring-boot/issues/50110)
- Upgrade to Lombok 1.18.46 [#​50148](https://github.com/spring-projects/spring-boot/issues/50148)
- Upgrade to [MariaDB 3.5.8](https://mariadb.com/kb/en/mariadb-connector-j-3-5-8-release-notes) [#​49909](https://github.com/spring-projects/spring-boot/issues/49909)
- Upgrade to [Micrometer 1.15.11](https://github.com/micrometer-metrics/micrometer/releases/tag/v1.15.11) [#​49961](https://github.com/spring-projects/spring-boot/issues/49961)
- Upgrade to [Micrometer Tracing 1.5.11](https://github.com/micrometer-metrics/tracing/releases/tag/v1.5.11) [#​49962](https://github.com/spring-projects/spring-boot/issues/49962)
- Upgrade to [MySQL 9.7.0](https://dev.mysql.com/doc/relnotes/connector-j/en/news-9-7-0.html) [#​50161](https://github.com/spring-projects/spring-boot/issues/50161)
- Upgrade to Neo4j Java Driver 5.28.13 [#​50074](https://github.com/spring-projects/spring-boot/issues/50074)
- Upgrade to [Reactor Bom 2024.0.17](https://github.com/reactor/reactor/releases/tag/2024.0.17) [#​49963](https://github.com/spring-projects/spring-boot/issues/49963)
- Upgrade to [Spring AMQP 3.2.10](https://github.com/spring-projects/spring-amqp/releases/tag/v3.2.10) [#​49964](https://github.com/spring-projects/spring-boot/issues/49964)
- Upgrade to [Spring Authorization Server 1.5.7](https://github.com/spring-projects/spring-authorization-server/releases/tag/1.5.7) [#​49965](https://github.com/spring-projects/spring-boot/issues/49965)
- Upgrade to [Spring Data Bom 2025.0.11](https://github.com/spring-projects/spring-data-bom/releases/tag/2025.0.11) [#​49966](https://github.com/spring-projects/spring-boot/issues/49966)
- Upgrade to [Spring Framework 6.2.18](https://github.com/spring-projects/spring-framework/releases/tag/v6.2.18) [#​49967](https://github.com/spring-projects/spring-boot/issues/49967)
- Upgrade to [Spring Kafka 3.3.15](https://github.com/spring-projects/spring-kafka/releases/tag/v3.3.15) [#​50129](https://github.com/spring-projects/spring-boot/issues/50129)
- Upgrade to [Spring LDAP 3.3.7](https://github.com/spring-projects/spring-ldap/releases/tag/3.3.7) [#​49968](https://github.com/spring-projects/spring-boot/issues/49968)
- Upgrade to [Spring Pulsar 1.2.17](https://github.com/spring-projects/spring-pulsar/releases/tag/v1.2.17) [#​49969](https://github.com/spring-projects/spring-boot/issues/49969)
- Upgrade to [Spring Security 6.5.10](https://github.com/spring-projects/spring-security/releases/tag/6.5.10) [#​49970](https://github.com/spring-projects/spring-boot/issues/49970)
- Upgrade to [Spring Session 3.5.6](https://github.com/spring-projects/spring-session/releases/tag/3.5.6) [#​49971](https://github.com/spring-projects/spring-boot/issues/49971)
- Upgrade to Thymeleaf 3.1.5.RELEASE [#​50149](https://github.com/spring-projects/spring-boot/issues/50149)
- Upgrade to Thymeleaf Extras SpringSecurity 3.1.5.RELEASE [#​50151](https://github.com/spring-projects/spring-boot/issues/50151)
- Upgrade to [Tomcat 10.1.54](https://tomcat.apache.org/tomcat-10.1-doc/changelog.html) [#​49910](https://github.com/spring-projects/spring-boot/issues/49910)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@​MohammedGhallab](https://github.com/MohammedGhallab), [@​dlwldnjs1009](https://github.com/dlwldnjs1009), [@​edwardsre](https://github.com/edwardsre), [@​kodama-kcc](https://github.com/kodama-kcc), [@​kwondh5217](https://github.com/kwondh5217), [@​quaff](https://github.com/quaff), [@​refeccd](https://github.com/refeccd), and [@​scordio](https://github.com/scordio)
### [`v3.5.13`](https://github.com/spring-projects/spring-boot/releases/tag/v3.5.13)
[Compare Source](https://github.com/spring-projects/spring-boot/compare/v3.5.12...v3.5.13)
#### :warning: Attention Required
- Jackson has been upgraded to 2.21.2 in response to the Jackson team ending support for Jackson 2.19.x and 2.20.x. [#​49365](https://github.com/spring-projects/spring-boot/issues/49365)
#### :lady\_beetle: Bug Fixes
- WebSocket messaging's task executors are only auto-configured and stompWebSocketHandlerMapping is only forced to be eager when using Jackson [#​49750](https://github.com/spring-projects/spring-boot/issues/49750)
- Metadata annotation processor ignores method-level `@NestedConfigurationProperty` when using constructor binding [#​49734](https://github.com/spring-projects/spring-boot/issues/49734)
- Override of property in external 'application.properties' or 'application.yaml' is ignored [#​49724](https://github.com/spring-projects/spring-boot/issues/49724)
- Some sliced tests that import TransactionAutoConfiguration do not import TransactionManagerCustomizationAutoConfiguration [#​49716](https://github.com/spring-projects/spring-boot/issues/49716)
- NativeImageResourceProvider does not find Flyway migration scripts in subdirectories [#​49661](https://github.com/spring-projects/spring-boot/issues/49661)
- `@GraphQlTest` does not include `@ControllerAdvice` [#​49660](https://github.com/spring-projects/spring-boot/pull/49660)
#### :notebook\_with\_decorative\_cover: Documentation
- Fix incorrect indefinite articles in Javadoc [#​49723](https://github.com/spring-projects/spring-boot/pull/49723)
- Add some more Kotlin examples and trivial style fixes [#​49710](https://github.com/spring-projects/spring-boot/pull/49710)
#### :hammer: Dependency Upgrades
- Upgrade to Hibernate 6.6.45.Final [#​49757](https://github.com/spring-projects/spring-boot/issues/49757)
- Upgrade to jOOQ 3.19.31 [#​49758](https://github.com/spring-projects/spring-boot/issues/49758)
- Upgrade to Netty 4.1.132.Final [#​49759](https://github.com/spring-projects/spring-boot/issues/49759)
- Upgrade to Tomcat 10.1.53 [#​49760](https://github.com/spring-projects/spring-boot/issues/49760)
- Upgrade to Undertow 2.3.24.Final [#​49761](https://github.com/spring-projects/spring-boot/issues/49761)
- Upgrade to Zipkin Reporter 3.5.3 [#​49756](https://github.com/spring-projects/spring-boot/issues/49756)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@​Joowon-Seo](https://github.com/Joowon-Seo), [@​deejay1](https://github.com/deejay1), [@​dlwldnjs1009](https://github.com/dlwldnjs1009), and [@​ljrmorgan](https://github.com/ljrmorgan)
### [`v3.5.12`](https://github.com/spring-projects/spring-boot/releases/tag/v3.5.12)
[Compare Source](https://github.com/spring-projects/spring-boot/compare/v3.5.11...v3.5.12)
#### :lady\_beetle: Bug Fixes
- EndpointRequest request matcher for health groups is too complex [#​49648](https://github.com/spring-projects/spring-boot/issues/49648)
- "/cloudfoundryapplication" web path is not limited to Actuator [#​49645](https://github.com/spring-projects/spring-boot/issues/49645)
- RSocket exposes duplicate endpoint for websocket setups [#​49592](https://github.com/spring-projects/spring-boot/issues/49592)
- Fix EndpointRequest.toLinks() when base-path is '/' [#​49591](https://github.com/spring-projects/spring-boot/pull/49591)
- SpringBootContextLoader mentions class that no longer exists in message for classes or locations assertion [#​49518](https://github.com/spring-projects/spring-boot/issues/49518)
- "spring.main.cloud-platform=none" does not disable cloud features [#​49478](https://github.com/spring-projects/spring-boot/issues/49478)
- Using `@AutoConfigureWebTestClient` prevents separate configuration of spring.test.webtestclient.timeout from taking effect [#​49340](https://github.com/spring-projects/spring-boot/pull/49340)
- Ordering of 'spring.config.import' is inconsistent when defined in environment or system properties [#​49324](https://github.com/spring-projects/spring-boot/pull/49324)
- RouterFunctions descriptions in Actuator do not support nesting [#​49289](https://github.com/spring-projects/spring-boot/issues/49289)
- Maven plugin does not set '-parameters' option when processing AOT code [#​49268](https://github.com/spring-projects/spring-boot/issues/49268)
- SSL support with Docker Compose does not work as documented [#​49210](https://github.com/spring-projects/spring-boot/pull/49210)
- Docker fails when a 'tcp\://' address ends with a slash (for example 'tcp\://docker:2375/') [#​49055](https://github.com/spring-projects/spring-boot/issues/49055)
#### :notebook\_with\_decorative\_cover: Documentation
- List all supported colors when describing color-coded log output [#​49561](https://github.com/spring-projects/spring-boot/issues/49561)
- Clarify that running is the only supported input state when triggering a Quartz job through the Actuator endpoint [#​49506](https://github.com/spring-projects/spring-boot/issues/49506)
- Tutorial in the reference guide has outdated instructions [#​49411](https://github.com/spring-projects/spring-boot/issues/49411)
- Javadoc of JettyHttpClientBuilder refers to the wrong type [#​49364](https://github.com/spring-projects/spring-boot/pull/49364)
- Example spring-devtools.properties file is shown in the wrong format [#​49357](https://github.com/spring-projects/spring-boot/pull/49357)
- Mention using org.springframework.boot.aot Gradle plugin directly for AOT processing with the JVM [#​49307](https://github.com/spring-projects/spring-boot/issues/49307)
- Update CLI's INSTALL.txt to reflect Groovy no longer being bundled [#​49297](https://github.com/spring-projects/spring-boot/issues/49297)
- JDK requirement for the CLI still refers to Java 8 [#​49290](https://github.com/spring-projects/spring-boot/pull/49290)
- Java and Kotlin samples of an environment post processor are inconsistent [#​49282](https://github.com/spring-projects/spring-boot/pull/49282)
- Document additional repositories required for shibboleth.net [#​49260](https://github.com/spring-projects/spring-boot/issues/49260)
- Clarify inferred relationships between OAuth 2 registrations and providers [#​49240](https://github.com/spring-projects/spring-boot/issues/49240)
#### :hammer: Dependency Upgrades
- Upgrade to DB2 JDBC 12.1.4.0 [#​49544](https://github.com/spring-projects/spring-boot/issues/49544)
- Upgrade to Hibernate 6.6.44.Final [#​49457](https://github.com/spring-projects/spring-boot/issues/49457)
- Upgrade to Jakarta XML WS 4.0.3 [#​49458](https://github.com/spring-projects/spring-boot/issues/49458)
- Upgrade to JBoss Logging 3.6.3.Final [#​49630](https://github.com/spring-projects/spring-boot/issues/49630)
- Upgrade to Jetty 12.0.33 [#​49459](https://github.com/spring-projects/spring-boot/issues/49459)
- Upgrade to Kafka 3.9.2 [#​49460](https://github.com/spring-projects/spring-boot/issues/49460)
- Upgrade to Lombok 1.18.44 [#​49574](https://github.com/spring-projects/spring-boot/issues/49574)
- Upgrade to Maven Failsafe Plugin 3.5.5 [#​49461](https://github.com/spring-projects/spring-boot/issues/49461)
- Upgrade to Maven Shade Plugin 3.6.2 [#​49462](https://github.com/spring-projects/spring-boot/issues/49462)
- Upgrade to Maven Surefire Plugin 3.5.5 [#​49463](https://github.com/spring-projects/spring-boot/issues/49463)
- Upgrade to Micrometer 1.15.10 [#​49403](https://github.com/spring-projects/spring-boot/issues/49403)
- Upgrade to Micrometer Tracing 1.5.10 [#​49404](https://github.com/spring-projects/spring-boot/issues/49404)
- Upgrade to Pulsar 4.0.9 [#​49464](https://github.com/spring-projects/spring-boot/issues/49464)
- Upgrade to Reactor Bom 2024.0.16 [#​49405](https://github.com/spring-projects/spring-boot/issues/49405)
- Upgrade to Spring Batch 5.2.5 [#​49406](https://github.com/spring-projects/spring-boot/issues/49406)
- Upgrade to Spring Data Bom 2025.0.10 [#​49407](https://github.com/spring-projects/spring-boot/issues/49407)
- Upgrade to Spring Framework 6.2.17 [#​49408](https://github.com/spring-projects/spring-boot/issues/49408)
- Upgrade to Spring HATEOAS 2.5.2 [#​49586](https://github.com/spring-projects/spring-boot/issues/49586)
- Upgrade to Spring Integration 6.5.8 [#​49631](https://github.com/spring-projects/spring-boot/issues/49631)
- Upgrade to Spring Kafka 3.3.14 [#​49409](https://github.com/spring-projects/spring-boot/issues/49409)
- Upgrade to Spring Pulsar 1.2.16 [#​49410](https://github.com/spring-projects/spring-boot/issues/49410)
- Upgrade to Spring Security 6.5.9 [#​49527](https://github.com/spring-projects/spring-boot/issues/49527)
- Upgrade to Spring WS 4.1.3 [#​49528](https://github.com/spring-projects/spring-boot/issues/49528)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@​bbbbooo](https://github.com/bbbbooo), [@​chandanv89](https://github.com/chandanv89), [@​itsmevichu](https://github.com/itsmevichu), [@​jayychoi](https://github.com/jayychoi), [@​l2yujw](https://github.com/l2yujw), [@​ngocnhan-tran1996](https://github.com/ngocnhan-tran1996), [@​qnnn](https://github.com/qnnn), [@​quaff](https://github.com/quaff), and [@​sbrannen](https://github.com/sbrannen)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My42NC41IiwidXBkYXRlZEluVmVyIjoiNDQuMzkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
renovate
changed title from chore(deps): update dependency org.springframework.boot:spring-boot-starter-json to v4 to Update dependency org.springframework.boot:spring-boot-starter-json to v42026-04-02 23:12:51 +02:00
renovate
force-pushed renovate/org.springframework.boot-spring-boot-starter-json-4.x from ad04b83b35 to 15db52ed292026-04-23 23:16:10 +02:00Compare
renovate
force-pushed renovate/org.springframework.boot-spring-boot-starter-json-4.x from 15db52ed29 to 482037e9d82026-06-10 23:12:07 +02:00Compare
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
3.5.11→4.1.1Release Notes
spring-projects/spring-boot (org.springframework.boot:spring-boot-starter-json)
v4.1.1Compare Source
⚠️ Attention Required
protobufextension with thegrpcplugin using an empty block. The Spring Boot Gradle plugin will then automatically configure the use ofprotoc-gen-grpc-javaas before. #50822🐞 Bug Fixes
@NestedConfigurationPropertyfor records #51098@Nullablereturn type #51087@Validatedclass that contains a map whose value type is a wildcard #50856📔 Documentation
@Valueplaceholder syntax in external config docs #50873🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@DragonFSKY, @LordKay-sudo, @MacAlsandair, @SJvaca30, @SebTardif, @SimonVerhoeven, @codingkiddo, @dhruv-15-03, @dlwldnjs1009, @dmitrysulman, @doehyunbaek, @filiphr, @msridhar, @ngocnhan-tran1996, @nosan, @ns3154, @quaff, @scordio, @seonwooj0810, @skdas20, @vipi-n, @vvzvvv, @wantaekchoi, @xfocus3, and @yamamoto-ehhMH
v4.1.0Compare Source
Full release notes for Spring Boot 4.1 are available on the wiki.
⭐ New Features
🐞 Bug Fixes
📔 Documentation
🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Abdlatif-nabgha, @DragonFSKY, @Kapil-chn7, @Kimgyuilli, @SJvaca30, @SebTardif, @ares333, @codingkiddo, @dlwldnjs1009, @eddumelendez, @henriquejsza, @igormukhin, @johnnypwong, @kwondh5217, @leestana01, @mheath, @mmoayyed, @msridhar, @ngocnhan-tran1996, @nosan, @quaff, @scordio, @vinhhieu21, @vpavic, @won-seoop, and @zxuhan
v4.0.8Compare Source
🐞 Bug Fixes
@Nullablereturn type #50972@Validatedclass that contains a map whose value type is a wildcard #50798@NestedConfigurationPropertyfor records #50096📔 Documentation
@Valueplaceholder syntax in external config docs #50859🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@DragonFSKY, @LordKay-sudo, @MacAlsandair, @SJvaca30, @SebTardif, @codingkiddo, @dhruv-15-03, @dlwldnjs1009, @dmitrysulman, @doehyunbaek, @filiphr, @msridhar, @ngocnhan-tran1996, @nosan, @quaff, @scordio, @seonwooj0810, @vipi-n, @vvzvvv, @wantaekchoi, @xfocus3, and @yamamoto-ehhMH
v4.0.7Compare Source
🐞 Bug Fixes
📔 Documentation
🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Abdlatif-nabgha, @DragonFSKY, @Kapil-chn7, @Kimgyuilli, @SJvaca30, @SebTardif, @ares333, @codingkiddo, @dlwldnjs1009, @henriquejsza, @igormukhin, @johnnypwong, @kwondh5217, @leestana01, @mheath, @mmoayyed, @msridhar, @ngocnhan-tran1996, @nosan, @quaff, @scordio, @vinhhieu21, @won-seoop, and @zxuhan
v4.0.6Compare Source
🐞 Bug Fixes
@Ssldon't work on@Beanmethods when using@ServiceConnection#50064@EnableEnversRepositoriesrather than configuring the JPA counterpart #50039📔 Documentation
🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@GollapudiSrikanth, @MohammedGhallab, @bachhs, @dlwldnjs1009, @edwardsre, @kodama-kcc, @kwondh5217, @ppapaj, @quaff, @refeccd, @scordio, and @xxxxxxjun
v4.0.5Compare Source
🐞 Bug Fixes
@NestedConfigurationPropertywhen using constructor binding #49738@ConditionalOnWebApplicationto NettyReactiveWebServerAutoConfiguration #49695@GraphQlTestdoes not include@ControllerAdvice#49672📔 Documentation
🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Joowon-Seo, @deejay1, @dlwldnjs1009, @kwondh5217, @ljrmorgan, and @quaff
v4.0.4Compare Source
⚠️ Attention Required
server.tomcat.max-part-counthas been increased from 10 to 50. This aligns it with Tomcat's own default and the default in Spring Boot 3.x. #49311🐞 Bug Fixes
@AutoConfigureWebTestClientprevents separate configuration of spring.test.webtestclient.timeout from taking effect #49344📔 Documentation
🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@FBibonne, @answndud, @bbbbooo, @chandanv89, @giyeon95, @itsmevichu, @jayychoi, @l2yujw, @ngocnhan-tran1996, @qnnn, @quaff, and @sbrannen
v4.0.3Compare Source
⭐ New Features
🐞 Bug Fixes
📔 Documentation
@Value' still apply for environment variables #49109🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@GaetanoCerciello, @dsyer, @linkian209, @nosan, @quaff, @scordio, and @srt
v4.0.2Compare Source
⚠️ Noteworthy Changes
org.eclipse.jetty.ee11:jetty-ee11-servletshas been removed fromspring-boot-jettyas it was unnecessary and unused. If your application code depends on a class fromjetty-ee11-servlets, declare a dependency on it in your build configuration. #48677🐞 Bug Fixes
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) is no longer applied to the management server #48653@ConfigurationPropertiesannotation on a LinkedHashMap class #48616📔 Documentation
🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@GaoSSR, @ShaunHaldane, @Zuohuang-Cai, @izeye, @mspiess, @ngocnhan-tran1996, and @philipbolting
v4.0.1Compare Source
⚠️ Noteworthy Changes
🐞 Bug Fixes
@ServiceConnectionfor LgtmStackContainer fails when logging endpoint is configured due to multiple OtlpLoggingConnectionDetails beans #48536@SpringBootTestdue to spring-boot-starter-webmvc-test, but missing at runtime without restclient starter #48253📔 Documentation
@AutoConfigureCache#48522@ConfigurationPropertiesSourceexample #48357@EnableBatchProcessingturns off all batch auto-configuration, including schema initialization #48266@AutoConfiguration#48228🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Nhahan, @arey, @banseok1216, @berry120, @candrews, @dmitrysulman, @geopark021, @hktechn0, @igslznev, @jwalter, @kzander91, @michaldo, @mzeijen, @ngocnhan-tran1996, @noojung, @scottfrederick, @vpavic, and @youngledo
v4.0.0Compare Source
Full release notes for Spring Boot 4.0 are available on the wiki. There is also a migration guide to help you upgrade from Spring Boot 3.5.
⭐ New Features
🐞 Bug Fixes
@JsonTestfails due to duplicate jacksonTesterFactoryBean #48198📔 Documentation
🔨 Dependency Upgrades
❤️ 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
v3.5.16Compare Source
🔨 Dependency Upgrades
v3.5.15Compare Source
🐞 Bug Fixes
📔 Documentation
🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Abdlatif-nabgha, @DragonFSKY, @Kapil-chn7, @SJvaca30, @SebTardif, @ares333, @codingkiddo, @dlwldnjs1009, @henriquejsza, @igormukhin, @johnnypwong, @kwondh5217, @leestana01, @mheath, @ngocnhan-tran1996, @nosan, @quaff, @scordio, @vinhhieu21, @won-seoop, and @zxuhan
v3.5.14Compare Source
🐞 Bug Fixes
@EnableEnversRepositoriesrather than configuring the JPA counterpart #50035@Ssldon't work on@Beanmethods when using@ServiceConnection#50033📔 Documentation
🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@MohammedGhallab, @dlwldnjs1009, @edwardsre, @kodama-kcc, @kwondh5217, @quaff, @refeccd, and @scordio
v3.5.13Compare Source
⚠️ Attention Required
🐞 Bug Fixes
@NestedConfigurationPropertywhen using constructor binding #49734@GraphQlTestdoes not include@ControllerAdvice#49660📔 Documentation
🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Joowon-Seo, @deejay1, @dlwldnjs1009, and @ljrmorgan
v3.5.12Compare Source
🐞 Bug Fixes
@AutoConfigureWebTestClientprevents separate configuration of spring.test.webtestclient.timeout from taking effect #49340📔 Documentation
🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@bbbbooo, @chandanv89, @itsmevichu, @jayychoi, @l2yujw, @ngocnhan-tran1996, @qnnn, @quaff, and @sbrannen
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate CLI.
chore(deps): update dependency org.springframework.boot:spring-boot-starter-json to v4to Update dependency org.springframework.boot:spring-boot-starter-json to v4ad04b83b35to15db52ed2915db52ed29to482037e9d8482037e9d8to771b66995dView command line instructions
Checkout
From your project repository, check out a new branch and test the changes.