Releases: spring-projects/spring-boot
v4.0.0-RC2
⭐ New Features
- Restore support for Jersey now that it supports JAX-RS 4 (Jakarta EE 11) #47967
- Refactor OpenTelemetryLoggingAutoConfiguration from OpenTelemetrySdkAutoConfiguration #47963
- Switch property backing OnEnabledTracingExportCondition to management.tracing.export.{name}.enabled #47959
- Rename management.zipkin.tracing to management.tracing.export.zipkin #47958
- Switch property backing OnEnabledLoggingExportCondition to management.logging.export.{name}.enabled #47957
- Rename management.opentelemetry.logging.export properties #47954
- Split spring-boot-micrometer-tracing into Brave and OpenTelemetry specific module #47953
- Use Elasticsearch 9.2's elasticsearch-rest5-client in spring-boot-elasticsearch #47945
- Provide auto-configuration for Jackson's XML data format #47942
- Rename OnlyOnceLoggingDenyMeterFilter #47925
- Allow url to be specified when working with
@AutoConfigureWebMvcconfigured HtmlUnit beans #47857
🐞 Bug Fixes
- Incorrect metadata for HttpServiceClientProperties ("spring.http.serviceclient") #47943
- Setting 'max-uri-tags' does not prevent unlimited meter growth on any AutoConfiguredCompositeMeterRegistry #47924
- Docker response 407 is not handled correctly resulting in no error message #47901
- Runtime hints for web resources no longer include nested folders #47894
- Auto-configuration for WebTestClient should be in an autoconfigure package #47892
- Jackson 2 support does not work in some sliced tests #47869
- spring-boot-starter-zipkin is missing spring-boot-micrometer-tracing dependency #47866
- Application TaskExecutor is no longer used when a custom AsyncConfigurer bean is defined #47897
- Custom Jackson serializers are no longer included in WebMvcTest and WebFluxTest #47864
- spring-boot-webtestclient is missing from GraphQL test starter #47849
- spring-boot-security brings test dependencies #47813
@JsonTestand@AutoConfigureJsonfail when using spring-boot-jackson2 #47811- Message converter customizer ordering impedes overriding #47798
- Deprecated testcontainers implementations are no longer detected #47796
- reactor-test is missing from reactive test starters #47795
- spring-kafka-test is missing from spring-boot-starter-kafka-test #47793
- spring-batch-test is missing from spring-boot-starter-batch-test #47792
- spring-rabbit-test is missing from spring-boot-starter-amqp-test #47791
- App fails to start when using Actuator with Jackson 2 and without spring-web #47788
- Depending on spring-boot-starter-actuator without a tracing bridge results in empty and unwanted correlation IDs in the logs #47785
- spring-boot-maven-plugin process-aot goal does not find package-private main method #47783
- Templating auto-configurations still have enabled properties that are not relevant following modularization #32250
📔 Documentation
- Config property management.logging.export.enabled is missing from documentation #47961
- Add a section about upgrading to Spring Boot 4.x #47916
- BootstrapContext#getOrElseThrow has incorrect reference to IllegalStateException #47906
- Clarify when BootstrapContext get methods may return null rather than throwing an exception or calling the fallback supplier #47899
- Document that web clients are opt-in with
@SpringBootTest#47891 - Document AssertJ support in RestTestClient #47881
- Document that Actuator endpoint may have at most one extension of each type #47874
- Limit Kotlin API documentation to Kotlin-specific APIs #47860
- Correct link to JacksonTester in JacksonTesterTestAutoConfiguration javadoc #47784
🔨 Dependency Upgrades
- Downgrade to Cassandra Driver 4.19.0 #47938
- Upgrade to AspectJ 1.9.25 #47931
- Upgrade to Caffeine 3.2.3 #47884
- Upgrade to Elasticsearch Client 9.2.0 #47847
- Upgrade to GraphQL Java 25.0.beta-9 #47911
- Upgrade to Hibernate 7.1.6.Final #47932
- Upgrade to Jackson 2 Bom 2.20.1 #47886
- Upgrade to JUnit Jupiter 6.0.1 #47933
- Upgrade to Kotlin 2.2.21 #47887
- Upgrade to Prometheus Client 1.4.2 #47888
- Upgrade to Quartz 2.5.1 #47889
- Upgrade to R2DBC Postgresql 1.1.1.RELEASE #47890
- Upgrade to Rabbit AMQP Client 5.27.1 #47950
- Upgrade to Spring Batch 6.0.0-RC2 #47842
- Upgrade to Spring Data Bom 2025.1.0-RC2 #47843
- Upgrade to Spring Framework 7.0.0-RC3 #47850
- Upgrade to Spring GraphQL 2.0.0-RC2 #47879
- Upgrade to Spring HATEOAS 3.0.0-RC2 #47851
- Upgrade to Spring Integration 7.0.0-RC2 #47880
- Upgrade to Spring Security 7.0.0-RC3 #47844
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Walti91, @filiphr, @mipo256, @namest504, @ngocnhan-tran1996, @siva-sai-udaygiri, and @tschut
v4.0.0-RC1
⭐ New Features
- Revisit metrics and tracing test properties #47776
- Downgrade to GraphQL Java 24.3 #47752
- Configure devtools to set trace probability to 100% by default #47721
- Remove "public" from referenced configurations from auto-configurations #47715
- Remove support for Spring Pulsar Reactive #47707
- Add Jackson 2 module to ease upgrade effort #47688
- Remove ConcurrentReferenceCachingMetadataReaderFactory #47687
- Remove integration for REST Docs' REST Assured support until REST Assured supports Groovy 5 #47685
- Remove support for embedded jar launch scripts #47666
- Remove support for Spring Session Data MongoDB #47662
- Remove support for Spring Session Hazelcast #47661
- Drop Spock until it supports Groovy 5 #47650
- Provide auto-configuration for Jackson's CBOR data format #47641
- Add support for
@ObservationKeyValue#47637 - Rename Jackson-specific Json… annotations and classes to Jackson… #47625
- Use Neo4j Java Driver BOM #47623
- Add TWENTY_FIVE to JavaVersion enum #47616
- Rationalize endpoint packages #47606
- Refactor spring-boot-cloudfoundry package structure #47605
- Rename spring-boot-tx module to spring-boot-transaction #47603
- Use JsonMapper instead of ObjectMapper where feasible #47503
- Automatically detect Jackson 3 modules #47485
- Add AWS ECS to cloud platforms #47482
- Rename SharedObjectMapper to SharedJsonMapper #47471
- Provide a configuration property to auto-configure Jackson 3 for best compatibility with Spring Boot 3's Jackson 2 defaults #47470
- Raise GraalVM baseline to 25 #47433
- Clarify that spring-boot-rsocket does not require spring-web #47409
- Rationalize HTTP client configuration properties #47398
- Disable LiveReload server by default #47387
- Update Neo4j support to require Neo4j Java Driver 6.0.0 #47381
- Remove SQL and Reactor starters as they are only used transitively #47378
- Rationalize SSL bundle configuration in RedisConnectionDetails #47375
- Add support for RestTestClient #47335
- Rename Spring Session properties that depend on Spring Data #47333
- Rename JsonMapper-specific properties to make it clear that they're JSON-specific #47328
- Move spring.jackson.datetime.
<feature-name>to spring.jackson.datatype.datetime #47327 - Modularize spring-boot-test-autoconfigure #47322
- Allow jars to be marked as a development-tool to exclude from uber-jar #47320
- Switch Maven plugin to exclude optional dependencies by default #47318
- Provide a configuration property for enabling and disabling Elasticsearch Client's sniffer #47301
- Add
@ControllerAdvicesupport to RSocket messaging auto-configuration #47287 - Reintroduce previous EnvironmentPostProcessor in deprecated form #47272
- Remove Bitnami support #47267
- Improve how Spring AMQP's retry can be configured #47264
- Refine JSpecify annotations #47263
- Add support for configuring HttpClientTransport in JettyClientHttpConnectorBuilder #47251
- Raise the minimum supported version of the CycloneDX Gradle Plugin to 3.0.0 #47250
- Make all type exclude filters package-private #47227
- Rename …DataAutoConfiguration to Data…AutoConfiguration #47049
- Configure Lettuce with MicrometerTracing instead of MicrometerCommandLatencyRecorder when micrometer-tracing is available #46975
- Add support for static master-replica with Lettuce #46957
- Review and refine where possible war deployments following 4.0's modularisation #46944
- Remove unused SHA-1 hash from UNPACK markers #46520
- Adopt Framework's HttpMessageConverters #46411
- Add native image support for Log4J integration #46410
- Modularize spring-boot-test #46356
- Add support for in-memory Batch infrastructure #46307
- Package mappings and exchanges classes consistently #46217
- Introduce a shared abstraction for database initialization #46213
- Add FONTS location to StaticResourceLocation #46208
- Update Log4j's configuration using reconfigure rather than start #46035
- Drop spring-boot-loader-classic support #45714
- Allow DevTools property defaults to be contributed by modules #44792
🐞 Bug Fixes
- Signed jar verification fails when nested in an uber war running on an Oracle JVM #47772
- In an uber war, value of the Sbom-Location manifest attribute does not match the SBOM's actual location #47739
- Homebrew formula for the CLI should use libexec #47723
- When virtual threads are enabled, embedded Jetty does not use recommended virtual thread configuration #47718
- Dependency management for Hibernate is inconsistent #47698
- ClientHttpRequestFactoryRuntimeHints is missing timeout methods with Duration overloads #47679
@AutoConfigureHttpGraphQlTestershould not trigger the configuration of mockMvc #47660- The 'spring.mongodb.representation.uuid' property cannot be bound #47654
- OnBeanCondition no longer correctly finds annotations on scoped target proxy beans #47636
- JavaVersion doesn't work reliably in native-image #47621
- Using CodecCustomizer requires explicit dependency on spring-boot-http-codec #47397
- Auto-configured JsonMapper backs off when any type of ObjectMapper is defined #47379
- LiquibaseEndpoint always uses defaultSchema instead of liquibaseSchema #47347
- Maven plugin does not provide an easy way to exclude opti...
v3.5.7
⭐ New Features
- Add TWENTY_FIVE to JavaVersion enum #47609
🐞 Bug Fixes
- Signed jar verification fails when nested in an uber war running on an Oracle JVM #47771
- In an uber war, value of the Sbom-Location manifest attribute does not match the SBOM's actual location #47737
- Homebrew formula for the CLI should use libexec #47722
- When virtual threads are enabled, embedded Jetty does not use recommended virtual thread configuration #47717
- ClientHttpRequestFactoryRuntimeHints is missing timeout methods with Duration overloads #47678
- OnBeanCondition no longer correctly finds annotations on scoped target proxy beans #47635
- JavaVersion doesn't work reliably in native-image #47620
- LiquibaseEndpoint always uses defaultSchema instead of liquibaseSchema #47346
- Launcher fails to find main method when it is parameterless #47311
- Package private Main class using Java 25 is not found by build plugins #47309
- Bitnami legacy images are not automatically detected #47275
- Maven plugin does not provide an easy way to exclude optional dependencies from uber jar #25403
📔 Documentation
- Some spring.test.* properties are not documented #47775
- Dependency management for Maven AntRun Plugin is missing changelog link #47744
- Developing Your First Spring Boot Application has outdated tools #47700
- Include deprecated configuration properties in the reference documentation #47669
- Aggregated Javadoc should link to the proper version of JakartaEE #47593
- Update javadoc of TestRestTemplate following change to redirect behavior #47474
- Use non-deprecated syntax to configure sourceCompatibility #47343
- Fix link to Framework's
@Beanannotation #47330 - Update managed dependency version override examples in documentation #47306
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 6.1.8 #47767
- Upgrade to Angus Mail 2.0.5 #47525
- Upgrade to AssertJ 3.27.6 #47526
- Upgrade to Byte Buddy 1.17.8 #47527
- Upgrade to Cassandra Driver 4.19.1 #47768
- Upgrade to Classmate 1.7.1 #47528
- Upgrade to Elasticsearch Client 8.18.8 #47671
- Upgrade to Glassfish JAXB 4.0.6 #47529
- Upgrade to GraphQL Java 24.3 #47755
- Upgrade to Groovy 4.0.29 #47713
- Upgrade to Hibernate 6.6.33.Final #47530
- Upgrade to HttpClient5 5.5.1 #47531
- Upgrade to HttpCore5 5.3.6 #47532
- Upgrade to Jakarta Mail 2.1.5 #47533
- Upgrade to Jakarta XML Bind 4.0.4 #47242
- Upgrade to Jetty 12.0.29 #47728
- Upgrade to Jetty Reactive HTTPClient 4.0.12 #47534
- Upgrade to jOOQ 3.19.27 #47536
- Upgrade to Logback 1.5.20 #47714
- Upgrade to Lombok 1.18.42 #47538
- Upgrade to Maven Compiler Plugin 3.14.1 #47539
- Upgrade to Micrometer 1.15.5 #47457
- Upgrade to Micrometer Tracing 1.5.5 #47458
- Upgrade to MongoDB 5.5.2 #47648
- Upgrade to MSSQL JDBC 12.10.2.jre11 #47612
- Upgrade to Netty 4.1.128.Final #47649
- Upgrade to Postgresql 42.7.8 #47540
- Upgrade to Pulsar 4.0.7 #47541
- Upgrade to R2DBC H2 1.0.1.RELEASE #47729
- Upgrade to R2DBC Postgresql 1.0.8.RELEASE #47542
- Upgrade to Reactor Bom 2024.0.11 #47459
- Upgrade to RxJava3 3.1.12 #47543
- Upgrade to Spring AMQP 3.2.8 #47614
- Upgrade to Spring Authorization Server 1.5.3 #47460
- Upgrade to Spring Batch 5.2.4 #47487
- Upgrade to Spring Data Bom 2025.0.5 #47461
- Upgrade to Spring Framework 6.2.12 #47462
- Upgrade to Spring GraphQL 1.4.3 #47754
- Upgrade to Spring Integration 6.5.3 #47615
- Upgrade to Spring LDAP 3.3.4 #47463
- Upgrade to Spring Pulsar 1.2.11 #47464
- Upgrade to Spring Security 6.5.6 #47465
- Upgrade to Spring Session 3.5.3 #47466
- Upgrade to Spring WS 4.1.2 #47467
- Upgrade to Tomcat 10.1.48 #47613
- Upgrade to Undertow 2.3.20.Final #47545
- Upgrade to WebJars Locator Lite 1.1.2 #47546
❤️ Contributors
Thank you to all the contributors who worked on this release:
@DKARAGODIN, @JinhyeokFang, @Lublanski, @Pankraz76, @fhiyo, @ngocnhan-tran1996, @nosan, @scottfrederick, and @xyraclius
v3.4.11
🐞 Bug Fixes
- In an uber war, value of the Sbom-Location manifest attribute does not match the SBOM's actual location #47735
- Homebrew formula for the CLI should use libexec #47696
- When virtual threads are enabled, embedded Jetty does not use recommended virtual thread configuration #47690
- ClientHttpRequestFactoryRuntimeHints is missing timeout methods with Duration overloads #47675
- OnBeanCondition no longer correctly finds annotations on scoped target proxy beans #47633
- JavaVersion doesn't work reliably in native-image #47619
- In an uber war, value of the Sbom-Location manifest attribute does not match the SBOM's actual location #47408
- LiquibaseEndpoint always uses defaultSchema instead of liquibaseSchema #47300
- Signed jar verification fails when nested in an uber war running on an Oracle JVM #47284
- Bitnami legacy images are not automatically detected #46983
📔 Documentation
- Dependency management for Maven AntRun Plugin is missing changelog link #47732
- Developing Your First Spring Boot Application has outdated tools #47699
- Include deprecated configuration properties in the reference documentation #47622
- Aggregated Javadoc should link to the proper version of JakartaEE #47592
- Use non-deprecated syntax to configure sourceCompatibility #47339
- Fix link to Framework's
@Beanannotation #47329 - Update managed dependency version override examples in documentation #47304
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 6.1.8 #47766
- Upgrade to Angus Mail 2.0.5 #47506
- Upgrade to Classmate 1.7.1 #47507
- Upgrade to Glassfish JAXB 4.0.6 #47508
- Upgrade to Groovy 4.0.29 #47711
- Upgrade to Hibernate 6.6.33.Final #47509
- Upgrade to HttpCore5 5.3.6 #47510
- Upgrade to Jakarta Mail 2.1.5 #47511
- Upgrade to Jakarta XML Bind 4.0.4 #47237
- Upgrade to Jaybird 5.0.10.java11 #47513
- Upgrade to Jetty 12.0.29 #47726
- Upgrade to Jetty Reactive HTTPClient 4.0.12 #47514
- Upgrade to jOOQ 3.19.27 #47516
- Upgrade to Logback 1.5.20 #47712
- Upgrade to Lombok 1.18.42 #47518
- Upgrade to Micrometer 1.14.12 #47446
- Upgrade to Micrometer Tracing 1.4.11 #47447
- Upgrade to MSSQL JDBC 12.8.2.jre11 #47607
- Upgrade to Netty 4.1.128.Final #47647
- Upgrade to Postgresql 42.7.8 #47519
- Upgrade to Pulsar 3.3.9 #47520
- Upgrade to R2DBC H2 1.0.1.RELEASE #47727
- Upgrade to R2DBC Postgresql 1.0.8.RELEASE #47521
- Upgrade to Reactor Bom 2024.0.11 #47448
- Upgrade to RxJava3 3.1.12 #47522
- Upgrade to Spring AMQP 3.2.8 #47610
- Upgrade to Spring Authorization Server 1.4.6 #47449
- Upgrade to Spring Batch 5.2.4 #47486
- Upgrade to Spring Data Bom 2024.1.11 #47450
- Upgrade to Spring Framework 6.2.12 #47451
- Upgrade to Spring Integration 6.4.8 #47611
- Upgrade to Spring LDAP 3.2.15 #47452
- Upgrade to Spring Pulsar 1.2.11 #47453
- Upgrade to Spring Security 6.4.12 #47454
- Upgrade to Spring Session 3.4.6 #47455
- Upgrade to Spring WS 4.0.16 #47456
- Upgrade to Tomcat 10.1.48 #47608
- Upgrade to Undertow 2.3.20.Final #47524
❤️ Contributors
Thank you to all the contributors who worked on this release:
@DKARAGODIN, @Lublanski, @fhiyo, @ngocnhan-tran1996, @nosan, @scottfrederick, and @xyraclius
v4.0.0-M3
⭐ New Features
- Deprecate JUnit 4 integration #47256
- Add support for SimpleTaskExecutor#cancel-remaining-tasks-on-close #47244
- Restructure foundational packages to remove dependency on 'org.springframework.boot' #47232
- Add configuration property for Tomcat's static resource cache max size #47229
- Introduce specialized interfaces in PropertiesConfigAdapter #47226
- Make ConfigDataLocation.of non-nullable #47221
- Make SanitizableData.key non-nullable #47220
- Add methods to connector and request factory builds to apply pre-packaged customizations #47205
- Finalize and document Spring Boot's HTTP Service client support #47179
- Revisit Kotlin Serialization integration #47178
- Remove explicit dependency management for Spring Authorization Server as it is now part of Spring Security #47174
- Adapt RetryTopicConfiguration now that Spring Kafka no longer relies on Spring Retry #47125
- Remove auto-configuration support for '
@HttpServiceClient' #47123 - Adapt RabbitRetryTemplateCustomizer now that Spring AMQP no longer relies on Spring Retry #47122
- Rename spring.mongodb.uuid-representation #47052
- Remove Spring Data MongoDB dependency from MongoDB health support #47051
- Always use mongodb rather than mongo in MongoDB-related configuration properties #47050
- Remove GridFs from MongoConnectionDetails #47044
- Rename *DataProperties classes to Data*Properties #47043
- Add a configuration property for configuring Spring Data MongoDB's BigDecimal representation #47041
- Rename ConditionalOnEnabledTracing to ConditionalOnEnabledTracingExport #47029
- Update PropertyMapper to better support nullability #47024
- Drop support for Jersey, at least until it supports JAX-RS 4 (Jakarta EE 11) #47017
- Rename ScheduledTasksObservabilityAutoConfiguration to ScheduledTasksObservationAutoConfiguration #46995
- Refine JSpecify annotations #46926
- Introduce Kotlin Serialization auto-configuration #46546
- Exclude spring-boot-devtools from AOT processing in Maven #46533
- Improve Log4j Core configuration file detection for Log4j 3 #46409
- Remove dependency management for Spring Retry in favor of spring-core's new retry support #46309
- Optimize resource lookup in DevTools restart #46289
- Add support for authenticating with Elasticsearch using an API key #46167
- Remove isImmutable and getPrefix from OriginLookup #45547
- Update Jackson support to require Jackson 3 #45535
- Use a shaded version of org.json in spring-boot-configuration-metadata and spring-boot-cli #45504
- Replace
@OptionalParameterwith JSpecify's@Nullable#45390 - Create spring-boot-persistence module to house general persistence-related code and properties #45328
- Rename spring-boot-starter-aop to spring-boot-starter-aspectj #42948
- Rename MongoDB properties that do not require Spring Data MongoDB #34954
- Enable readiness and liveness probe endpoints by default #22825
🐞 Bug Fixes
- App fails to start when trying to use Prometheus without Actuator #47175
- Quoted -D arguments break system property resolution on Linux with Spring AOT #47167
- available() does not behave correctly when reading stored entries from a NestedJarFile #47058
- spring-boot-docker-compose doesn't create service connections when image has registry host but not project #47020
- Flyway Ignore Migration Patterns setting can't be set to an empty string #47014
📔 Documentation
- Default value of server.tomcat.resource.cache-ttl is not documented #47254
- Document Java 25 support #47248
- Fix links to Flyway reference documentation #46989
- Clarify Javadoc of Customizer interfaces about overriding behavior #46943
🔨 Dependency Upgrades
- Upgrade to Couchbase Client 3.9.1 #47129
- Upgrade to Ehcache3 3.11.1 #46893
- Upgrade to Elasticsearch Client 9.1.4 #47173
- Upgrade to Flyway 11.13.1 #47261
- Upgrade to Gson 2.13.2 #47153
- Upgrade to Hibernate 7.1.1.Final #47217
- Upgrade to HikariCP 7.0.2 #47060
- Upgrade to HtmlUnit 4.16.0 #47061
- Upgrade to HttpCore5 5.3.5 #47062
- Upgrade to Infinispan 15.2.6.Final #47063
- Upgrade to Jackson Bom 3.0.0-rc9 #47130
- Upgrade to Jakarta Activation 2.1.4 #47161
- Upgrade to Jakarta Mail 2.1.4 #47064
- Upgrade to Jaybird 6.0.3 #47065
- Upgrade to Jedis 6.2.0 #47045
- Upgrade to Jetty 12.1.1 #47131
- Upgrade to jOOQ 3.19.26 #47154
- Upgrade to Kafka 4.1.0 #47066
- Upgrade to Kotlin 2.2.10 #47067
- Upgrade to Lettuce 6.8.1.RELEASE #47046
- Upgrade to Lombok 1.18.40 #47068
- Upgrade to MariaDB 3.5.6 #47168
- Upgrade to Maven Failsafe Plugin 3.5.4 #47195
- Upgrade to Maven Shade Plugin 3.6.1 #47196
- Upgrade to Maven Surefire Plugin 3.5.4 #47197
- Upgrade to Micrometer 1.16.0-M3 #46996
- Upgrade to Micrometer Tracing 1.6.0-M3 #46997
- Upgrade to MongoDB 5.6.0 #47169
- Upgrade to Netty 4.2.6.Final #47132
- Upgrade to OpenTelemetry 1.54.0 #47133
- Upgrade to Pulsar 4.1.0 #47170
- Upgrade to R2DBC MSSQL 1.0.3.RELEASE #47171
- Upgrade to Reactor B...
v3.5.6
🐞 Bug Fixes
- Quoted -D arguments break system property resolution on Linux with Spring AOT #47166
- Groovy Templates fails with an NPE when rendering an auto new line #47139
- available() does not behave correctly when reading stored entries from a NestedJarFile #47057
- spring-boot-docker-compose doesn't create service connections when image has registry host but not project #47019
- Flyway Ignore Migration Patterns setting can't be set to an empty string #47013
📔 Documentation
- Default value of server.tomcat.resource.cache-ttl is not documented #47253
- Document Java 25 support #47245
- Fix links to Flyway reference documentation #46988
- Clarify Javadoc of Customizer interfaces about overriding behavior #46942
🔨 Dependency Upgrades
- Upgrade to Ehcache3 3.10.9 #47106
- Upgrade to Elasticsearch Client 8.18.6 #47094
- Upgrade to Gson 2.13.2 #47158
- Upgrade to Hibernate 6.6.29.Final #47216
- Upgrade to HikariCP 6.3.3 #47187
- Upgrade to HttpCore5 5.3.5 #47108
- Upgrade to Infinispan 15.2.6.Final #47109
- Upgrade to Jakarta Activation 2.1.4 #47188
- Upgrade to Jakarta Mail 2.1.4 #47110
- Upgrade to Jaybird 6.0.3 #47111
- Upgrade to Jetty 12.0.27 #47159
- Upgrade to jOOQ 3.19.26 #47160
- Upgrade to Lombok 1.18.40 #47113
- Upgrade to MariaDB 3.5.6 #47189
- Upgrade to Maven Failsafe Plugin 3.5.4 #47190
- Upgrade to Maven Shade Plugin 3.6.1 #47191
- Upgrade to Maven Surefire Plugin 3.5.4 #47192
- Upgrade to Micrometer 1.15.4 #47083
- Upgrade to Micrometer Tracing 1.5.4 #47084
- Upgrade to Netty 4.1.127.Final #47127
- Upgrade to R2DBC MSSQL 1.0.3.RELEASE #47193
- Upgrade to Reactor Bom 2024.0.10 #47085
- Upgrade to Spring AMQP 3.2.7 #47086
- Upgrade to Spring Batch 5.2.3 #47087
- Upgrade to Spring Data Bom 2025.0.4 #47088
- Upgrade to Spring Framework 6.2.11 #47089
- Upgrade to Spring GraphQL 1.4.2 #47090
- Upgrade to Spring Integration 6.5.2 #47091
- Upgrade to Spring Kafka 3.3.10 #47092
- Upgrade to Spring Pulsar 1.2.10 #47093
- Upgrade to Spring Security 6.5.5 #47257
- Upgrade to Tomcat 10.1.46 #47194
- Upgrade to Undertow 2.3.19.Final #47115
- Upgrade to XmlUnit2 2.10.4 #47243
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Chanwon-Seo, @doljae, @izeye, and @quaff
v3.4.10
🐞 Bug Fixes
- available() does not behave correctly when reading stored entries from a NestedJarFile #47056
- Flyway Ignore Migration Patterns setting can't be set to an empty string #46984
- spring-boot-docker-compose doesn't create service connections when image has registry host but not project #46974
- Quoted -D arguments break system property resolution on Linux with Spring AOT #46555
📔 Documentation
- Default value of server.tomcat.resource.cache-ttl is not documented #47252
- Fix links to Flyway reference documentation #46976
- Clarify Javadoc of Customizer interfaces about overriding behavior #46938
🔨 Dependency Upgrades
- Upgrade to Ehcache3 3.10.9 #47096
- Upgrade to Hibernate 6.6.29.Final #47215
- Upgrade to HttpCore5 5.3.5 #47098
- Upgrade to Infinispan 15.0.21.Final #47099
- Upgrade to Jakarta Activation 2.1.4 #47181
- Upgrade to Jakarta Mail 2.1.4 #47100
- Upgrade to Jaybird 5.0.9.java11 #47101
- Upgrade to Jetty 12.0.27 #47156
- Upgrade to jOOQ 3.19.26 #47157
- Upgrade to Lombok 1.18.40 #47103
- Upgrade to Maven Failsafe Plugin 3.5.4 #47182
- Upgrade to Maven Shade Plugin 3.6.1 #47183
- Upgrade to Maven Surefire Plugin 3.5.4 #47184
- Upgrade to Micrometer 1.14.11 #47073
- Upgrade to Micrometer Tracing 1.4.10 #47074
- Upgrade to Netty 4.1.127.Final #47128
- Upgrade to R2DBC MSSQL 1.0.3.RELEASE #47185
- Upgrade to Reactor Bom 2024.0.10 #47075
- Upgrade to Spring AMQP 3.2.7 #47076
- Upgrade to Spring Batch 5.2.3 #47077
- Upgrade to Spring Data Bom 2024.1.10 #47078
- Upgrade to Spring Framework 6.2.11 #47079
- Upgrade to Spring Integration 6.4.7 #47080
- Upgrade to Spring Kafka 3.3.10 #47081
- Upgrade to Spring Pulsar 1.2.10 #47082
- Upgrade to Spring Security 6.4.11 #47258
- Upgrade to Tomcat 10.1.46 #47186
- Upgrade to Undertow 2.3.19.Final #47105
- Upgrade to XmlUnit2 2.10.4 #47238
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Chanwon-Seo, @doljae, @izeye, and @quaff
v4.0.0-M2
⭐ New Features
- Rename metrics, observation, and tracing modules to include micrometer in their names and packages #46925
- Drop support for Undertow as it is not Servlet 6.1 compatible #46917
- Harmonize Logback's console and file logging charset #46846
- Make spring-boot-starter-opentelemetry produce OTLP output from instrumentation #46842
- Add '
@HttpServiceClient' scanning auto-configuration #46782 - Add dependency management for JSpecify #46776
- Drop Actuator endpoint parameter support for javax.annotations.NonNull #46773
- Remove StreamBuilderFactoryBeanCustomizer in favor of Spring Kafka's StreamsBuilderFactoryBeanConfigurer #46675
- Rely on org.springframework.core.Nullness to determine if an Actuator endpoint is optional #46593
- Provide configuration property to disable console logging #46592
- Add JSpecify nullability annotations #46587
- Add auto-configuration and properties support for Spring Framework's new API Versioning #46519
- Ensure RestClient uses Virtual Thread Executor when spring.threads.virtual.enabled=true and JdkClientHttpRequestFactoryBuilder #46404
- Create spring-boot-autoconfigure-classic module #46233
- Auto-configure Elasticsearch's new Rest5Client rather than the legacy RestClient #46061
- Raise the minimum supported version of Gradle to 8.14 #43574
- Support Gradle 9 #43573
- Make auto-configurations final and remove public members #32883
🐞 Bug Fixes
- HTTP Service Client properties are not applied #46915
- Hazelcast health indicator reports the wrong status when Hazelcast has shut down due to an out-of-memory error #46910
- Configuration Metadata for Actuator endpoints does not take Nullness into account #46854
- Performance critical tracing code has high overhead due to the use of the Stream API #46845
- Default authorization server filter chain configuration is excluded in M1 release when actuator starter is on the classpath #46841
- SpringLiquibaseCustomizer is exposed outside its defined visibility scope #46759
- Race condition in OutputCapture can result in stale data #46722
- Auto-configured WebClient no longer uses context's ReactorResourceFactory #46684
- WebTestClientAutoConfiguration fails when WebFlux is on the classpath and spring-boot-http-codec is not #46678
- Default value not detected for a field annoted with
@Name#46667 - Missing metadata when using
@Namewith a constructor-bound property #46664 - Missing property for Spring Authorization Server's PAR endpoint #46648
- Auto-configured MockMvc ignores
@FilterRegistrationannotation #46647 - Property name is incorrect when reporting a mis-configured OAuth 2 Resource Server JWT public key location #46637
- Memory not freed on context restart in JpaMetamodel#CACHE with spring.main.lazy-initialization=true #46635
- Failure to discover default value for a primitive should not lead to document its default value #46562
- WebTestClient is now bound to previous test server port when test application context is paused #46557
- Spring Boot 4.0.0-M1 has a typo in spring-boot-dependencies.pom for spring-boot-starter-opentelemetry #46549
- spring-boot-metrics with micrometer-registry-otlp throws exception if spring-boot-opentelemetry is missing #46303
📔 Documentation
- Update Servlet container system requirements #46918
- Kotlin samples for configuration metadata are in the wrong package #46858
- Observability examples in the reference guide are missing the Kotlin version #46799
- Align method descriptions for SslOptions getCiphers and getEnabledProtocols with '
@returns' #46770 - Tracing samples in the reference guide are missing the Kotlin version #46768
- Improve Virtual Threads section to mention the changes in Java 24 #46611
- spring.test.webtestclient.timeout is not documented #46589
- spring-boot-test-autoconfigure should use the configuration properties annotation processor like other modules #46586
- spring.test.mockmvc properties are not documented #46579
🔨 Dependency Upgrades
- Upgrade to Angus Mail 2.0.4 #46735
- Upgrade to AssertJ 3.27.4 #46736
- Upgrade to Byte Buddy 1.17.7 #46887
- Upgrade to Couchbase Client 3.9.0 #46797
- Upgrade to Elasticsearch 9.1.0 #46686
- Upgrade to Elasticsearch Client 9.1.1 #46827
- Upgrade to Flyway 11.11.1 #46894
- Upgrade to GraphQL Java 25.0.beta-5 #46880
- Upgrade to Hibernate 7.1.0.Final #46738
- Upgrade to HikariCP 7.0.1 #46739
- Upgrade to HtmlUnit 4.15.0 #46895
- Upgrade to Jackson Bom 2.20.0-rc1 #46815
- Upgrade to Jedis 6.1.0 #46687
- Upgrade to Jetty 12.1.0 #46906
- Upgrade to Jetty Reactive HTTPClient 4.0.11 #46888
- Upgrade to jOOQ 3.19.25 #46809
- Upgrade to Json-smart 2.6.0 #46742
- Upgrade to Lettuce 6.8.0.RELEASE #46750
- Upgrade to MariaDB 3.5.5 #46810
- Upgrade to Maven Javadoc Plugin 3.11.3 #46889
- Upgrade to Micrometer 1.16.0-M2 #46811
- Upgrade to Micrometer Tracing 1.6.0-M2 #46812
- Upgrade to Mockito 5.19.0 #46896
- Upgrade to MSSQL JDBC 13.2.0.jre11 #46897
- Upgrade to MySQL 9.4.0 #46743
- Upgrade to Native Build Tools Plugin 0.11.0 #46501
- Upgrade to Netty 4.2.4.Final #46829
- Upgrade to OpenTelemetry 1.53.0 #46813
- Upgrade to Oracle Database 23.9.0.25.07 #46744
- Upgrade to Prometheus Client 1.4.1 [#46898](https://github.com/spring-project...
v3.5.5
🐞 Bug Fixes
- Hazelcast health indicator reports the wrong status when Hazelcast has shut down due to an out-of-memory error #46909
- Performance critical tracing code has high overhead due to the use of the Stream API #46844
- SpringLiquibaseCustomizer is exposed outside its defined visibility scope #46758
- Race condition in OutputCapture can result in stale data #46721
- Auto-configured WebClient no longer uses context's ReactorResourceFactory #46673
- Default value not detected for a field annoted with
@Name#46666 - Missing metadata when using
@Namewith a constructor-bound property #46663 - Missing property for Spring Authorization Server's PAR endpoint #46641
- Property name is incorrect when reporting a mis-configured OAuth 2 Resource Server JWT public key location #46636
- Memory not freed on context restart in JpaMetamodel#CACHE with spring.main.lazy-initialization=true #46634
- Auto-configured MockMvc ignores
@FilterRegistrationannotation #46605 - Failure to discover default value for a primitive should not lead to document its default value #46561
📔 Documentation
- Kotlin samples for configuration metadata are in the wrong package #46857
- Observability examples in the reference guide are missing the Kotlin version #46798
- Align method descriptions for SslOptions getCiphers and getEnabledProtocols with
@returns#46769 - Tracing samples in the reference guide are missing the Kotlin version #46767
- Improve Virtual Threads section to mention the changes in Java 24 #46610
- spring.test.webtestclient.timeout is not documented #46588
- spring-boot-test-autoconfigure should use the configuration properties annotation processor like other modules #46585
- Adapt deprecation level for management.health.influxdb.enabled #46580
- spring.test.mockmvc properties are not documented #46578
🔨 Dependency Upgrades
- Upgrade to Angus Mail 2.0.4 #46725
- Upgrade to AssertJ 3.27.4 #46726
- Upgrade to Byte Buddy 1.17.7 #46883
- Upgrade to Couchbase Client 3.8.3 #46794
- Upgrade to Elasticsearch Client 8.18.5 #46830
- Upgrade to Hibernate 6.6.26.Final #46884
- Upgrade to Hibernate Validator 8.0.3.Final #46728
- Upgrade to HikariCP 6.3.2 #46729
- Upgrade to Jersey 3.1.11 #46730
- Upgrade to Jetty 12.0.25 #46831
- Upgrade to Jetty Reactive HTTPClient 4.0.11 #46885
- Upgrade to jOOQ 3.19.25 #46808
- Upgrade to MariaDB 3.5.5 #46779
- Upgrade to Maven Javadoc Plugin 3.11.3 #46886
- Upgrade to Micrometer 1.15.3 #46701
- Upgrade to Micrometer Tracing 1.5.3 #46702
- Upgrade to MySQL 9.4.0 #46732
- Upgrade to Netty 4.1.124.Final #46832
- Upgrade to Pulsar 4.0.6 #46733
- Upgrade to Reactor Bom 2024.0.9 #46703
- Upgrade to REST Assured 5.5.6 #46849
- Upgrade to Spring Authorization Server 1.5.2 #46704
- Upgrade to Spring Data Bom 2025.0.3 #46705
- Upgrade to Spring Framework 6.2.10 #46706
- Upgrade to Spring Kafka 3.3.9 #46871
- Upgrade to Spring LDAP 3.3.3 #46707
- Upgrade to Spring Pulsar 1.2.9 #46708
- Upgrade to Spring RESTDocs 3.0.5 #46920
- Upgrade to Spring Security 6.5.3 #46709
- Upgrade to Spring Session 3.5.2 #46710
- Upgrade to Tomcat 10.1.44 #46734
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Kguswo, @deejay1, @ganjisriver, @izeye, @jetflo, @ngocnhan-tran1996, @nicolasgarea, @nosan, @prishedko, @quaff, @schmidti159, @scordio, @shakuzen, @tommyk-gears, @zahra7, and @zakaria-shahen
v3.4.9
🐞 Bug Fixes
- Hazelcast health indicator reports the wrong status when Hazelcast has shut down due to an out-of-memory error #46877
- Performance critical tracing code has high overhead due to the use of the Stream API #46838
- SpringLiquibaseCustomizer is exposed outside its defined visibility scope #46752
- Race condition in OutputCapture can result in stale data #46685
- Default value not detected for a field annoted with
@Name#46662 - Memory not freed on context restart in JpaMetamodel#CACHE with spring.main.lazy-initialization=true #46630
- Property name is incorrect when reporting a mis-configured OAuth 2 Resource Server JWT public key location #46627
- Missing metadata when using
@Namewith a constructor-bound property #46599 - Failure to discover default value for a primitive should not lead to document its default value #46551
📔 Documentation
- Observability examples in the reference guide are missing the Kotlin version #46775
- Kotlin samples for configuration metadata are in the wrong package #46774
- Align method descriptions for SslOptions getCiphers and getEnabledProtocols with
@returns#46756 - Tracing samples in the reference guide are missing the Kotlin version #46699
- spring-boot-test-autoconfigure should use the configuration properties annotation processor like other modules #46584
- spring.test.webtestclient.timeout is not documented #46577
- spring.test.mockmvc properties are not documented #46576
- Adapt deprecation level for management.health.influxdb.enabled #46574
- Improve Virtual Threads section to mention the changes in Java 24 #46547
🔨 Dependency Upgrades
- Upgrade to Angus Mail 2.0.4 #46711
- Upgrade to Hibernate 6.6.26.Final #46881
- Upgrade to Hibernate Validator 8.0.3.Final #46713
- Upgrade to Infinispan 15.0.19.Final #46847
- Upgrade to Jersey 3.1.11 #46723
- Upgrade to Jetty 12.0.25 #46833
- Upgrade to Jetty Reactive HTTPClient 4.0.11 #46882
- Upgrade to jOOQ 3.19.25 #46807
- Upgrade to Micrometer 1.14.10 #46689
- Upgrade to Micrometer Tracing 1.4.9 #46690
- Upgrade to MySQL 9.4.0 #46715
- Upgrade to Netty 4.1.124.Final #46834
- Upgrade to Pulsar 3.3.8 #46716
- Upgrade to Reactor Bom 2024.0.9 #46691
- Upgrade to REST Assured 5.5.6 #46848
- Upgrade to Spring Authorization Server 1.4.5 #46692
- Upgrade to Spring Data Bom 2024.1.9 #46693
- Upgrade to Spring Framework 6.2.10 #46694
- Upgrade to Spring Kafka 3.3.9 #46870
- Upgrade to Spring LDAP 3.2.14 #46695
- Upgrade to Spring Pulsar 1.2.9 #46696
- Upgrade to Spring RESTDocs 3.0.5 #46919
- Upgrade to Spring Security 6.4.9 #46697
- Upgrade to Spring Session 3.4.5 #46698
- Upgrade to Tomcat 10.1.44 #46724
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Kguswo, @Pankraz76, @deejay1, @ganjisriver, @izeye, @nicolasgarea, @nosan, @prishedko, @quaff, @schmidti159, @scordio, @shakuzen, @tommyk-gears, @zahra7, and @zakaria-shahen