Releases: spring-projects/spring-boot
Releases · spring-projects/spring-boot
v4.1.0
Full release notes for Spring Boot 4.1 are available on the wiki.
⭐ New Features
- Add public constructor to InvalidConfigurationPropertyValueException that accepts a cause #50211
- Reduce memory consumption when repeatedly calling WritableJson.toByteArray #49428
🐞 Bug Fixes
- MailSender auto-configuration does not enable hostname verification #50747
- Artemis auto-configuration uses a predictable default location for the embedded broker's data #50745
- Embedded LDAP SSL should not be enabled when its bundle is empty #50700
- InetAddressFilter.externalAddresses does not exclude special purpose addresses from RFC 6890 #50668
- NullPointerException in reactor-netty SniProvider and unmapped SSL bundle with RSocket #50645
- SSL should not be enabled when a SSL bundle is overridden to an empty string #50635
- Test auto-configuration no longer integrates Spring Security with HtmlUnitDriver #50633
- Configuration property metadata includes incorrect class references #50632
- Docker Compose support does not restore thread interrupt flag when catching InterruptedException #50618
- RabbitProperties enables SSL even when spring.rabbitmq.ssl.bundle is overridden to an empty string #50612
- NullPointerException in reactor-netty SniProvider when SSL bundle uses client-auth or server truststore without server-name-bundles #50610
- SpringJtaPlatform should have been deprecated since 4.1.0-M3 #50592
- Layer written outside the output location of '//' exception is thrown when using extract layers in root directory #50510
- ConfigurationPropertiesReportEndpoint exposes AOP proxy internals #50417
- 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
- Document SSL reloading with Let's Encrypt #50630
- Remove the use of Optional from Data Neo4j repository examples #50622
- Fix typos in documentation #50620
- Clarify dependency requirement for Bean Validation support #50614
- Document Java 25 requirement for AOT cache #50485
- Add links for Java CAS Client Spring Boot Starter #50285
- Document known testcontainers lifecycle issues #50220
- Document adding multiple connectors for Jetty #50218
- Polish InvalidConfigurationPropertyValueException constructor javadoc #50214
- Fix typo in Spring Security OAuth2 client registration documentation #50199
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 6.2.6 #50652
- Upgrade to Byte Buddy 1.18.10 #50693
- Upgrade to Caffeine 3.2.4 #50338
- Upgrade to Cassandra Driver 4.19.3 #50654
- Upgrade to Couchbase Client 3.11.3 #50576
- Upgrade to Elasticsearch Client 9.4.2 #50655
- Upgrade to Glassfish JAXB 4.0.9 #50656
- Upgrade to Groovy 5.0.6 #50340
- Upgrade to Hibernate 7.4.1.Final #50732
- Upgrade to Infinispan 16.1.4 #50342
- Upgrade to Jackson 2 Bom 2.21.4 #50657
- Upgrade to Jackson Bom 3.1.4 #50658
- Upgrade to Jakarta Json Bind 3.0.2 #50659
- Upgrade to Jakarta XML Bind 4.0.5 #50345
- Upgrade to Jaxen 2.0.6 #50710
- Upgrade to Jetty 12.1.10 #50661
- Upgrade to Jetty Reactive HTTPClient 4.1.5 #50711
- Upgrade to jOOQ 3.21.5 #50712
- Upgrade to Kafka 4.2.1 #50662
- Upgrade to Kotlin 2.3.21 #50347
- Upgrade to Lettuce 7.5.2.RELEASE #50581
- Upgrade to Liquibase 5.0.3 [#50582](https://github.com/spri...
v4.0.7
🐞 Bug Fixes
- MailSender auto-configuration does not enable hostname verification #50746
- Artemis auto-configuration uses a predictable default location for the embedded broker's data #50744
- NullPointerException in reactor-netty SniProvider and unmapped SSL bundle with RSocket #50640
- SSL should not be enabled when a SSL bundle is overridden to an empty string #50634
- Docker Compose support does not restore thread interrupt flag when catching InterruptedException #50617
- RabbitProperties enables SSL even when spring.rabbitmq.ssl.bundle is overridden to an empty string #50611
- NullPointerException in reactor-netty SniProvider when SSL bundle uses client-auth or server truststore without server-name-bundles #50609
- Test auto-configuration no longer integrates Spring Security with HtmlUnitDriver #50602
- Layer written outside the output location of '//' exception is thrown when using extract layers in root directory #50509
- ConfigurationPropertiesReportEndpoint exposes AOP proxy internals #50416
- 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
- Document SSL reloading with Let's Encrypt #50629
- Remove the use of Optional from Data Neo4j repository examples #50621
- Fix typos in documentation #50619
- Clarify dependency requirement for Bean Validation support #50613
- Document Java 25 requirement for AOT cache #50484
- Add links for Java CAS Client Spring Boot Starter #50281
- Document known testcontainers lifecycle issues #50219
- Document adding multiple connectors for Jetty #50217
- Polish InvalidConfigurationPropertyValueException constructor javadoc #50213
- Fix typo in Spring Security OAuth2 client registration documentation #50198
🔨 Dependency Upgrades
- Upgrade to Caffeine 3.2.4 #50322
- Upgrade to Cassandra Driver 4.19.3 #50681
- Upgrade to Glassfish JAXB 4.0.9 #50682
- Upgrade to Groovy 5.0.6 #50324
- Upgrade to Hibernate 7.2.19.Final #50733
- Upgrade to Jackson 2 Bom 2.21.4 #50684
- Upgrade to Jackson Bom 3.1.4 #50685
- Upgrade to Jakarta Json Bind 3.0.2 #50686
- Upgrade to Jakarta XML Bind 4.0.5 #50328
- Upgrade to Jaxen 2.0.6 #50717
- Upgrade to Jetty 12.1.10 #50688
- Upgrade to Jetty Reactive HTTPClient 4.1.5 #50718
- Upgrade to jOOQ 3.19.35 #50719
- Upgrade to Liquibase 5.0.3 #50554
- Upgrade to Logback 1.5.34 #50689
- Upgrade to Maven Enforcer Plugin 3.6.3 #50555
- Upgrade to Maven Failsafe Plugin 3.5.6 #50690
- Upgrade to Maven Surefire Plugin 3.5.6 #50691
- Upgrade to Micrometer 1.16.6 #50535
- Upgrade to Micrometer Tracing 1.6.6 #50536
- Upgrade to Neo4j Java Driver 6.1.0 #50556
- Upgrade to Netty 4.2.15.Final #50692
- Upgrade to Postgresql 42.7.11 #50332
- Upgrade to R2DBC MySQL 1.4.2 #50333
- Upgrade to Reactor Bom 2025.0.6 #50537
- Upgrade to SAAJ Impl 3.0.6 #50720
- Upgrade to SLF4J 2.0.18 #50558
- Upgrade to Spring AMQP 4.0.4 #50538
- Upgrade to Spring Batch 6.0.4 #50539
- Upgrade to Spring Data Bom 2025.1.6 #50540
- Upgrade to Spring Framework 7.0.8 #50541
- Upgrade to Spring GraphQL 2.0.4 #50740
- Upgrade to Spring HATEOAS 3.0.4 [#50542](https://github.com/spring-projects/spring-boot/iss...
v3.5.15
🐞 Bug Fixes
- Artemis auto-configuration uses a predictable default location for the embedded broker's data #50743
- MailSender auto-configuration does not enable hostname verification #50742
- SSL should not be enabled when a SSL bundle is overridden to an empty string #50624
- Layer written outside the output location of '//' exception is thrown when using extract layers in root directory #50501
- Docker Compose support does not restore thread interrupt flag when catching InterruptedException #50451
- RabbitProperties enables SSL even when spring.rabbitmq.ssl.bundle is overridden to an empty string #50429
- GraphQL WebSocket support does not configure allowed origins #50391
- Buildpack module does not validate long-to-int casts #50382
- MappingsEndpoint reports the context's own ID as parentId when a parent exists #50373
- Created StackTracePrinter instances have no access to the Environment #50303
- NullPointerException in reactor-netty SniProvider when SSL bundle uses client-auth or server truststore without server-name-bundles #50301
- Spring Boot Loader Does Not Support RSA and EC Signed Jars #50292
- ConfigurationPropertiesReportEndpoint exposes AOP proxy internals #50273
- 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
- Fix typos in documentation #50593
- Document Java 25 requirement for AOT cache #50482
- Clarify dependency requirement for Bean Validation support #50290
- Document SSL reloading with Let's Encrypt #50222
- Polish InvalidConfigurationPropertyValueException constructor javadoc #50212
- Document known testcontainers lifecycle issues #50210
- Document configuring multiple connectors with Jetty #50206
- Fix typo in Spring Security OAuth2 client registration documentation #50193
🔨 Dependency Upgrades
- Upgrade to Caffeine 3.2.4 #50308
- Upgrade to Cassandra Driver 4.19.3 #50670
- Upgrade to Glassfish JAXB 4.0.9 #50671
- Upgrade to Groovy 4.0.32 #50310
- Upgrade to Hibernate 6.6.53.Final #50721
- Upgrade to Jackson Bom 2.21.4 #50673
- Upgrade to Jakarta Json Bind 3.0.2 #50674
- Upgrade to Jakarta XML Bind 4.0.5 #50313
- Upgrade to Jaxen 2.0.6 #50722
- Upgrade to Jetty 12.0.36 #50676
- Upgrade to Jetty Reactive HTTPClient 4.0.14 #50723
- Upgrade to jOOQ 3.19.35 #50724
- Upgrade to Logback 1.5.34 #50677
- Upgrade to Maven Failsafe Plugin 3.5.6 #50678
- Upgrade to Maven Surefire Plugin 3.5.6 #50679
- Upgrade to Micrometer 1.15.12 #50511
- Upgrade to Micrometer Tracing 1.5.12 #50512
- Upgrade to Netty 4.1.135.Final #50680
- Upgrade to Postgresql 42.7.11 #50317
- Upgrade to Pulsar 4.0.11 #50725
- Upgrade to R2DBC MySQL 1.4.2 #50319
- Upgrade to Reactor Bom 2024.0.18 #50513
- Upgrade to SAAJ Impl 3.0.6 #50726
- Upgrade to SLF4J 2.0.18 #50533
- Upgrade to Spring AMQP 3.2.11 #50514
- Upgrade to Spring Authorization Server 1.5.8 #50515
- Upgrade to Spring Batch 5.2.6 #50516
- Upgrade to Spring Data Bom 2025.0.12 #50517
- Upgrade to Spring Framework 6.2.19 #50518
- Upgrade to Spring GraphQL 1.4.6 #50739
- Upgrade to Spring HATEOAS 2.5.3 #50519
- Upgrade to Spring Integration 6.5.9 #50520
- Upgrade to Spring Kafka 3.3.16 #50521
- Upgrade to Spring LDAP 3.3.8 #50522
- Upgrade to Spring Pulsar 1.2.18 #50523
- Upgrade to Spring RESTDocs 3.0.6 #50524
- Upgrade to Spring Retry 2.0.13 #50525
- Upgrade to Spring Security 6.5.11 #50526
- Upgrade to [Spring Session 3.5.7](https://github.com/spring-...
v4.1.0-RC1
⭐ New Features
- Add support for docker.elastic.co/elasticsearch/elasticsearch #50119
- Narrow the scope of icons pattern to /icons/icon-* #50084
- Add configuration options for KafkaTemplate's allowNonTransactional and closeTimeout #49954
- Align ReactorHttpClientBuilder defaults with Spring Framework and provide an opt-out #49950
- Add support for providing a custom SessionTimeout bean #49883
- Add support for Redis Annotation driven listeners #49858
- Support spring.webflux.default-html-escape property for application-wide HTML escaping configuration #49791
- Add fallback support for '/opt/homebrew/bin' on macOS #49721
- Support InetAddress filtering for HTTP Clients #49687
- Monitor certificates from truststore in SslMeterBinder #49641
- Enable ansi support by default on Windows 11+ #49571
- Add '
@GrpcAdvice' exception handling support #49053 - Add support for OpenTelemetry SDK environment variables #48799
- Add ability to read custom layers.xml from classpath #32466
- Support LazyConnectionDataSourceProxy #15480
🐞 Bug Fixes
- Default security is misconfigured when spring-boot-actuator-autoconfigure is present and spring-boot-health is not #50190
- Elasticsearch Rest5Client auto-configuration misconfigures underlying HTTP client #50189
- ApplicationPidFileWriter does not handle symlinks correctly #50186
- RandomValuePropertySource is not suitable for secrets #50184
- Cassandra auto-configuration misconfigures CqlSessionBuilder #50182
- ApplicationTemp does not handle symlinks correctly #50179
- Remote DevTools performs comparison incorrectly #50177
- spring.rabbitmq.ssl.verify-hostname is applied inconsistently #50175
- GrpcDisableCsrfHttpConfigurer incorrectly uses inverse of 'spring.grpc.server.security.csrf.enabled' property #50145
- API versioning path strategy should be applied path last as it is not meant to yield #50127
- Whole number values are ignored when configuring min and max expected values and SLO boundaries for a distribution summary meter #50078
- Classic starters are missing several modules #50072
- Module spring-boot-resttestclient is missing from spring-boot-starter-test-classic #50070
- Annotations like
@Ssldon't work on@Beanmethods when using@ServiceConnection#50065 - EnversRevisionRepositoriesRegistrar should reuse
@EnableEnversRepositoriesrather than configuring the JPA counterpart #50040 - WebFlux Cloud Foundry links endpoint includes query string from received request in resolved links #50018
- Imports on a containing test class are ignored when a nested class has imports #50013
- Spring Security's PathPatternRequestMatcher.Builder is not auto-configured when using WebMvcTest and spring-boot-security-test #49988
- Reactive MongoDB starter has a transitive dependency on the synchronous MongoDB driver #49958
- With spring.jackson.use-jackson2-defaults set to true, FAIL_ON_UNKNOWN_PROPERTIES is enabled #49957
- 500 response from env endpoint when supplied pattern is invalid #49947
- HTTP method is lost when configuring excludes in EndpointRequest #49944
- Honor HttpMethod for reactive additional endpoint paths #49881
- Docker Compose support doesn't work with apache/artemis image #49870
- Docker Compose support doesn't work with apache/activemq image #49867
- ReactiveOAuth2ResourceServerAutoConfiguration should trigger only on real Reactive Applications #49807
- Test starters 'spring-boot-starter-grpc-client-test' and 'spring-boot-starter-grpc-server-test' are missing #49690
- Properties in '
@ConfigurationProperties' annotated type shouldn't be able to define the same '@Name' #49565 - Distribution's SLO, minimum expected value, and maximum expected value are not applied to long task timer meters #49190
- WebConversionService breaks embedded value resolving #8923
📔 Documentation
- Update docs to encourage Java fundamentals for beginners that prefer to learn that way #50147
- HTTP Service Interface Clients still document that API versioning can be configured via properties #50128
- Link to the observability section of the Lettuce documentation is broken #50098
- Javadoc for StaticResourceLocation.FAVICON doesn't describe icons location #50086
- MySamlRelyingPartyConfiguration is missing a Kotlin sample #50025
- Move OAuth2 and SAML 2.0 documentation to a security section #50022
- Incorrect default value for management.httpexchanges.recording.include in configuration metadata #50020
- Link to the Kubernetes documentation when discussing startup probes #50016
- Document missing gRPC's default unit in GrpcClientProperties #49879
- Document the need for Liquibase and Flyway starters #49875
- Typo in JdbcSessionAutoConfiguration Javadoc #49874
- Clarify that configuration property default values are not available through the Environment #49852
- Kafka documentation refers to deprecated JSON serializer and deserializer classes #49834
- Document gRPC Support #49291
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 6.2.4 #50002
- Upgrade to Byte Buddy 1.18.8 #49922
- Upgrade to Couchbase Client 3.11.2 #50066
- Upgrade to Ehcache3 3.12.0 #49923
- Upgrade to Elasticsearch Client 9.3.4 #50099
- Upgrade to Flyway 12.4.0 #50079
- Upgrade to Git Commit ID Maven Plugin 9.2.0 #49925
- Upgrade to Groovy 5.0.5 #49926
- Upgrade to Hibernate 7.2.12.Final #50136
- Upgrade to HttpClient5 5.6.1 [#50137](https://github.com/spring-project...
v4.0.6
🐞 Bug Fixes
- Default security is misconfigured when spring-boot-actuator-autoconfigure is present and spring-boot-health is not #50188
- Elasticsearch Rest5Client auto-configuration misconfigures underlying HTTP client #50187
- ApplicationPidFileWriter does not handle symlinks correctly #50185
- RandomValuePropertySource is not suitable for secrets #50183
- Cassandra auto-configuration misconfigures CqlSessionBuilder #50180
- ApplicationTemp does not handle symlinks correctly #50178
- Remote DevTools performs comparison incorrectly #50176
- spring.rabbitmq.ssl.verify-hostname is applied inconsistently #50174
- Whole number values are ignored when configuring min and max expected values and SLO boundaries for a distribution summary meter #50077
- Classic starters are missing several modules #50071
- Module spring-boot-resttestclient is missing from spring-boot-starter-test-classic #50069
- Annotations like
@Ssldon't work on@Beanmethods when using@ServiceConnection#50064 - EnversRevisionRepositoriesRegistrar should reuse
@EnableEnversRepositoriesrather than configuring the JPA counterpart #50039 - WebFlux Cloud Foundry links endpoint includes query string from received request in resolved links #50017
- Imports on a containing test class are ignored when a nested class has imports #50012
- With spring.jackson.use-jackson2-defaults set to true, FAIL_ON_UNKNOWN_PROPERTIES is enabled #49951
- 500 response from env endpoint when supplied pattern is invalid #49946
- Reactive MongoDB starter has a transitive dependency on the synchronous MongoDB driver #49945
- HTTP method is lost when configuring excludes in EndpointRequest #49943
- Honor HttpMethod for reactive additional endpoint paths #49880
- Docker Compose support doesn't work with apache/artemis image #49869
- Docker Compose support doesn't work with apache/activemq image #49866
- Spring Security's PathPatternRequestMatcher.Builder is not auto-configured when using WebMvcTest and spring-boot-security-test #49854
- API versioning path strategy should be applied path last as it is not meant to yield #49800
📔 Documentation
- Update docs to encourage Java fundamentals for beginners that prefer to learn that way #50146
- HTTP Service Interface Clients still document that API versioning can be configured via properties #50126
- Link to the observability section of the Lettuce documentation is broken #50097
- Javadoc for StaticResourceLocation.FAVICON doesn't describe icons location #50085
- MySamlRelyingPartyConfiguration is missing a Kotlin sample #50024
- Incorrect default value for management.httpexchanges.recording.include in configuration metadata #50019
- Link to the Kubernetes documentation when discussing startup probes #50015
- Typo in JdbcSessionAutoConfiguration Javadoc #49873
- Clarify that configuration property default values are not available through the Environment #49851
- Document the need for Liquibase and Flyway starters #49839
- Kafka documentation refers to deprecated JSON serializer and deserializer classes #49826
🔨 Dependency Upgrades
- Upgrade to Elasticsearch Client 9.2.8 #50027
- Upgrade to Groovy 5.0.5 #49911
- Upgrade to Hibernate 7.2.12.Final #50134
- Upgrade to Jackson Bom 3.1.2 #50051
- Upgrade to Jaxen 2.0.1 #50104
- Upgrade to Jaybird 6.0.5 #49914
- Upgrade to Jetty 12.1.8 #49915
- Upgrade to jOOQ 3.19.32 #50105
- Upgrade to Log4j2 2.25.4 #49916
- Upgrade to Lombok 1.18.46 #50150
- Upgrade to MariaDB 3.5.8 #49917
- Upgrade to Micrometer 1.16.5 #49972
- Upgrade to Micrometer Tracing 1.6.5 #49973
- Upgrade to MongoDB 5.6.5 #50028
- Upgrade to MySQL 9.7.0 #50159
- Upgrade to Neo4j Java Driver 6.0.5 #50075
- Upgrade to Reactor Bom 2025.0.5 #49974
- Upgrade to Spring AMQP 4.0.3 #49975
- Upgrade to Spring Data Bom 2025.1.5 #49976
- Upgrade to Spring Framework 7.0.7 #49977
- Upgrade to Spring GraphQL 2.0.3 #49978
- Upgrade to Spring Kafka 4.0.5 #49979
- Upgrade to Spring LDAP 4.0.3 #49980
- Upgrade to Spring Pulsar 2.0.5 #49981
- Upgrade to Spring Security 7.0.5 #49982
- Upgrade to Spring Session 4.0.3 #49983
- Upgrade to Testcontainers 2.0.5 #50135
- Upgrade to Thymeleaf 3.1.5.RELEASE #50152
- Upgrade to Thymeleaf Extras SpringSecurity 3.1.5.RELEASE #50153
- Upgrade to Tomcat 11.0.21 #49918
...
v3.5.14
🐞 Bug Fixes
- ApplicationPidFileWriter does not handle symlinks correctly #50173
- RandomValuePropertySource is not suitable for secrets #50172
- Cassandra auto-configuration misconfigures CqlSessionBuilder #50171
- ApplicationTemp does not handle symlinks correctly #50170
- Remote DevTools performs comparison incorrectly #50169
- spring.rabbitmq.ssl.verify-hostname is applied inconsistently #50168
- EnversRevisionRepositoriesRegistrar should reuse
@EnableEnversRepositoriesrather than configuring the JPA counterpart #50035 - Annotations like
@Ssldon't work on@Beanmethods when using@ServiceConnection#50033 - Whole number values are ignored when configuring min and max expected values and SLO boundaries for a distribution summary meter #50021
- WebFlux Cloud Foundry links endpoint includes query string from received request in resolved links #50008
- 500 response from env endpoint when supplied pattern is invalid #49942
- HTTP method is lost when configuring excludes in EndpointRequest #49885
- Docker Compose support doesn't work with apache/artemis image #49865
- Honor HttpMethod for reactive additional endpoint paths #49864
- Docker Compose support doesn't work with apache/activemq image #49863
- Imports on a containing test class are ignored when a nested class has imports #49860
📔 Documentation
- Link to the observability section of the Lettuce documentation is broken #50092
- Javadoc for StaticResourceLocation.FAVICON doesn't describe icons location #50083
- MySamlRelyingPartyConfiguration is missing a Kotlin sample #50023
- Incorrect default value for management.httpexchanges.recording.include in configuration metadata #50010
- Link to the Kubernetes documentation when discussing startup probes #50007
- Update docs to encourage Java fundamentals for beginners that prefer to learn that way #49895
- Clarify that configuration property default values are not available through the Environment #49835
🔨 Dependency Upgrades
- Upgrade to Groovy 4.0.31 #49905
- Upgrade to Hibernate 6.6.49.Final #50140
- Upgrade to Jaxen 2.0.1 #50109
- Upgrade to Jaybird 6.0.5 #49907
- Upgrade to Jetty 12.0.34 #49908
- Upgrade to jOOQ 3.19.32 #50110
- Upgrade to Lombok 1.18.46 #50148
- Upgrade to MariaDB 3.5.8 #49909
- Upgrade to Micrometer 1.15.11 #49961
- Upgrade to Micrometer Tracing 1.5.11 #49962
- Upgrade to MySQL 9.7.0 #50161
- Upgrade to Neo4j Java Driver 5.28.13 #50074
- Upgrade to Reactor Bom 2024.0.17 #49963
- Upgrade to Spring AMQP 3.2.10 #49964
- Upgrade to Spring Authorization Server 1.5.7 #49965
- Upgrade to Spring Data Bom 2025.0.11 #49966
- Upgrade to Spring Framework 6.2.18 #49967
- Upgrade to Spring Kafka 3.3.15 #50129
- Upgrade to Spring LDAP 3.3.7 #49968
- Upgrade to Spring Pulsar 1.2.17 #49969
- Upgrade to Spring Security 6.5.10 #49970
- Upgrade to Spring Session 3.5.6 #49971
- Upgrade to Thymeleaf 3.1.5.RELEASE #50149
- Upgrade to Thymeleaf Extras SpringSecurity 3.1.5.RELEASE #50151
- Upgrade to Tomcat 10.1.54 #49910
❤️ Contributors
Thank you to all the contributors who worked on this release:
@MohammedGhallab, @dlwldnjs1009, @edwardsre, @kodama-kcc, @kwondh5217, @quaff, @refeccd, and @scordio
v4.1.0-M4
⭐ New Features
- Add 'spring.jpa.bootstrap' property for async background bootstrapping #49733
- Add support for custom GrpcServerObservationConvention #49730
- A Spring Data JPA bootstrap mode property of 'deferred' should provide a meaningful message if no suitable AsyncTaskExecutor is found #49688
🐞 Bug Fixes
- Test starter for Spring Integration does not include Spring Integration test module #49786
- Some sliced tests that import TransactionAutoConfiguration do not import TransactionManagerCustomizationAutoConfiguration #49783
- WebSocket app fails to start when Jackson is on the classpath but there's no JsonMapper bean #49755
- WebSocket messaging's task executors are only auto-configured and stompWebSocketHandlerMapping is only forced to be eager when using Jackson #49754
- Metadata annotation processor ignores method-level
@NestedConfigurationPropertywhen using constructor binding #49739 - Override of property in external 'application.properties' or 'application.yaml' is ignored #49732
- NativeImageResourceProvider does not find Flyway migration scripts in subdirectories #49707
- Add
@ConditionalOnWebApplicationto NettyReactiveWebServerAutoConfiguration #49699 - App using spring-cloud-stream-binder-rabbit fails to start with 4.1.0-M3 #49676
@GraphQlTestdoes not include@ControllerAdvice#49673
📔 Documentation
- Fix incorrect indefinite articles in Javadoc #49728
- Document gRPC's default unit in configuration properties consistently #49722
- Add some more Kotlin examples and trivial style fixes #49715
- Overhaul Spring Session documentation following modularization #49705
🔨 Dependency Upgrades
- Upgrade to Artemis 2.53.0 #49769
- Upgrade to Brave 6.3.1 #49771
- Upgrade to Grpc Java 1.80.0 #49772
- Upgrade to Jackson 2 Bom 2.21.2 #49773
- Upgrade to jOOQ 3.21.0 #49774
- Upgrade to Netty 4.2.12.Final #49795
- Upgrade to Prometheus Client 1.5.1 #49777
- Upgrade to Protobuf Common Protos 2.67.0 #49778
- Upgrade to Protobuf Java 4.34.1 #49779
- Upgrade to Protobuf Maven Plugin 5.1.0 #49776
- Upgrade to Thymeleaf Layout Dialect 4.0.1 #49780
- Upgrade to Tomcat 11.0.20 #49781
- Upgrade to Zipkin Reporter 3.5.3 #49770
❤️ Contributors
Thank you to all the contributors who worked on this release:
@deejay1, @dlwldnjs1009, @kwondh5217, @ljrmorgan, @quaff, and @therepanic
v4.0.5
🐞 Bug Fixes
- Test starter for Spring Integration does not include Spring Integration test module #49784
- Some sliced tests that import TransactionAutoConfiguration do not import TransactionManagerCustomizationAutoConfiguration #49782
- WebSocket messaging's task executors are only auto-configured and stompWebSocketHandlerMapping is only forced to be eager when using Jackson #49753
- WebSocket app fails to start when Jackson is on the classpath but there's no JsonMapper bean #49749
- Metadata annotation processor ignores method-level
@NestedConfigurationPropertywhen using constructor binding #49738 - Override of property in external 'application.properties' or 'application.yaml' is ignored #49731
- NativeImageResourceProvider does not find Flyway migration scripts in subdirectories #49706
- Add
@ConditionalOnWebApplicationto NettyReactiveWebServerAutoConfiguration #49695 @GraphQlTestdoes not include@ControllerAdvice#49672
📔 Documentation
- Fix incorrect indefinite articles in Javadoc #49727
- Add some more Kotlin examples and trivial style fixes #49714
- Overhaul Spring Session documentation following modularization #49704
🔨 Dependency Upgrades
- Upgrade to Brave 6.3.1 #49763
- Upgrade to Jackson 2 Bom 2.21.2 #49764
- Upgrade to jOOQ 3.19.31 #49765
- Upgrade to Netty 4.2.12.Final #49794
- Upgrade to Tomcat 11.0.20 #49767
- Upgrade to Zipkin Reporter 3.5.3 #49762
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Joowon-Seo, @deejay1, @dlwldnjs1009, @kwondh5217, @ljrmorgan, and @quaff
v3.5.13
⚠️ 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
🐞 Bug Fixes
- WebSocket messaging's task executors are only auto-configured and stompWebSocketHandlerMapping is only forced to be eager when using Jackson #49750
- Metadata annotation processor ignores method-level
@NestedConfigurationPropertywhen using constructor binding #49734 - Override of property in external 'application.properties' or 'application.yaml' is ignored #49724
- Some sliced tests that import TransactionAutoConfiguration do not import TransactionManagerCustomizationAutoConfiguration #49716
- NativeImageResourceProvider does not find Flyway migration scripts in subdirectories #49661
@GraphQlTestdoes not include@ControllerAdvice#49660
📔 Documentation
- Fix incorrect indefinite articles in Javadoc #49723
- Add some more Kotlin examples and trivial style fixes #49710
🔨 Dependency Upgrades
- Upgrade to Hibernate 6.6.45.Final #49757
- Upgrade to jOOQ 3.19.31 #49758
- Upgrade to Netty 4.1.132.Final #49759
- Upgrade to Tomcat 10.1.53 #49760
- Upgrade to Undertow 2.3.24.Final #49761
- Upgrade to Zipkin Reporter 3.5.3 #49756
❤️ Contributors
Thank you to all the contributors who worked on this release:
v4.1.0-M3
⚠️ Attention Required
- OpenTelemetry's ZipkinSpanExporter has been deprecated and its support will be removed in Spring Boot 4.2. #49557
- 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. #49312
⭐ New Features
- Introduce Generic AMQP 1.0 client support #49621
- Rename spring-boot-amqp to spring-boot-rabbitmq #49620
- Add support for SslBundles to OTLP metrics export #49590
- Add support for SslBundles to OTLP traces export #49584
- Add support for SslBundles to OTLP logging export #49583
- Add more fine-grained support for selecting metric exemplars #49572
- Add property to disable the OpenTelemetry SDK #49564
- Add properties to select OpenTelemetry's sampler #49548
- Configure BootBuildInfo task created using the DSL as a src dir of the main source set's resources #49547
- Add properties to configure BatchLogRecordProcessor #49543
- Add type-safe binding support for gPRC service config #49540
- Add auto-configuration for OTLP exemplars #49538
- Output Docker Compose's logs when start or up fails #49423
- Provide protobuf gradle plugin support #49369
- Provide protobuf-maven-plugin configuration in the starter parent POM #49353
- Add FailureAnalyzedException to reduce the number of internal FailureAnalyzers required #49320
- Add more styling support to the Logback and Log4j2 color converters #49285
- Create reusable default TaskScheduler configuration #49280
- Update TestRestTemplate's default cookie handling to match RestTemplate's #49261
- Add Spring gRPC server and client observation support #49056
- Fail gRPC servlet applications if server.http2.enabled is not enabled #49050
- Add Spring gRPC Server Health Check Support #49048
- Add Spring gRPC server and client security support #49047
- Add Spring gRPC Testing Support #49046
- Add Spring gRPC Client Support #49045
- Add Spring gRPC Server Support #49044
- Add support for Spring gRPC #49043
- Add builder customizer for SpringOpaqueTokenIntrospector and SpringReactiveOpaqueTokenIntrospector #49029
- Deprecate LiveReload support for removal #48971
- Add SSL support to auto-configuration for RabbitMQ Streams #48960
- Allow empty objects to be loaded from YAML #48958
- Support binding of default properties when an empty property is defined #48920
- Auto-configure Jackson mapper beans with a bean-based HandlerInstantiator #48711
- Add support for auto-configuring ExpressionJwtGrantedAuthoritiesConverter #48490
- Deprecate RootUriTemplateHandler in favor of DefaultUriBuilderFactory #48350
- Add Log4j2 rolling policy configuration #47260
- Enable auto-configuration of OAuth2 resource server machinery in a non-webapp #43978
- Add support for Spring Batch MongoDB #43236
🐞 Bug Fixes
- EndpointRequest request matcher for health groups is too complex #49650
- "/cloudfoundryapplication" web path is not limited to Actuator #49647
- Fix EndpointRequest.toLinks() when base-path is '/' #49618
- Docker fails when a 'tcp://' address ends with a slash (for example 'tcp://docker:2375/') #49597
- RSocket exposes duplicate endpoint for websocket setups #49595
- Failure analysis for a missing mail sender is misleading #49585
- Dependency management for HttpClient5 misses httpclient5-observation #49553
- SpringBootContextLoader mentions class that no longer exists in message for classes or locations assertion #49536
- Missing starter for spring-boot-restdocs #49524
- Ordering of 'spring.config.import' is inconsistent when defined in environment or system properties #49483
- "spring.main.cloud-platform=none" does not disable cloud features #49480
- SSL support with Docker Compose does not work as documented #49386
- NoSuchMethodException when forcing the use of Log4J2LoggingSystem using org.springframework.boot.logging.LoggingSystem system property #49384
- ErrorPageRegistrarBeanPostProcessor is not auto-configured in war deployments and the ErrorPageCustomizer is not applied #49380
- Auto-configuration overrides authorization server configuration applied by Customizer beans #49379
- Using
@AutoConfigureWebTestClientprevents separate configuration of spring.test.webtestclient.timeout from taking effect #49345 - Several reactive starters do not depend on spring-boot-reactor #49335
- HTTP Service Interface Client doesn't work in a native image due to missing property binding #49326
- RouterFunctions descriptions in Actuator do not support nesting #49303
- Maven plugin does not set '-parameters' option when processing AOT code #49296
📔 Documentation
- Document support for Java 26 #49605
- List all supported colors when describing color-coded log output #49563
- Improve EndpointRequest matcher documentation #49521
- Clarify that running is the only supported input state when triggering a Quartz job through the Actuator endpoint #49515
- Document security considerations for forwarded headers in cloud deployments #49511
- Tutorial in the reference guide has outdated instructions #49430
- Document additional repositories required for shibboleth.net #49393
- Javadoc of JettyHttpClientBuilder refers to the wrong type #49388
- Example spring-devtools.properties file is shown in the wrong format #49363
- Clarify inferred relationships between OAuth 2 registrations and providers #49328
- Mention using org.springframework.boot.aot Gradle plugin directly for AOT processing with the JVM [#49322](...