Skip to content

Releases: spring-projects/spring-boot

v4.0.0

20 Nov 18:18

Choose a tag to compare

⭐ New Features

  • Change tomcat and jetty runtime modules to starters #48175
  • Rename spring-boot-kotlin-serialization to align with the name of the Kotlinx module that it pulls in #48076

🐞 Bug Fixes

  • Error properties are a general web concern and should not be located beneath server.* #48201
  • With both Jackson 2 and 3 on the classpath, @JsonTest fails due to duplicate jacksonTesterFactoryBean #48198
  • Gradle war task does not exclude starter POMs from lib-provided #48197
  • spring.test.webclient.mockrestserviceserver.enabled is not aligned with its module's name #48193
  • SslMeterBinder doesn't register metrics for dynamically added bundles if no bundles exist at bind time #48182
  • Properties bound in the child management context ignore the parent's environment prefix #48177
  • ssl.chain.expiry metrics doesn't update for dynamically registered SSL bundles #48171
  • Starter for spring-boot-micrometer-metrics is missing #48161
  • Elasticsearch client's sniffer functionality should not be enabled by default #48155
  • spring-boot-starter-elasticsearch should depend on elasticsearch-java #48141
  • Auto-configuration exclusions are checked using a different class loader to the one that loads auto-configuration classes #48132
  • New arm64 macbooks fail to bootBuildImage due to incorrect platform image #48128
  • Properties for configuring an isolated JsonMapper or ObjectMapper are incorrectly named #48116
  • Buildpack fails with recent Docker installs due to hardcoded version in URL #48103
  • Image building may fail when specifying a platform if an image has already been built with a different platform #48099
  • Default values of Kotlinx Serialization JSON configuration properties are not documented #48097
  • Custom XML converters should override defaults in HttpMessageConverters #48096
  • Kotlin serialization is used too aggressively when other JSON libraries are available #48070
  • PortInUseException incorrectly thrown on failure to bind port due to Netty IP misconfiguration #48059
  • Auto-configured JCacheMetrics cannot be customized #48057
  • WebSecurityCustomizer beans are excluded by WebMvcTest #48055
  • Deprecated EnvironmentPostProcessor does not resolve arguments #48047
  • RetryPolicySettings should refer to maxRetries, not maxAttempts #48023
  • Devtools Restarter does not work with a parameterless main method #47996
  • Dependency management for Kafka should not manage Scala 2.12 libraries #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
  • spring-boot-starter-data-mongodb-reactive has dependency on reactor-test #47982
  • Support for ReactiveElasticsearchClient is in the wrong module #47848

📔 Documentation

  • Removed property spring.test.webclient.register-rest-template is still documented #48199
  • Mention support for detecting AWS ECS in "Deploying to the Cloud" #48170
  • Revise AWS section of "Deploying to the Cloud" in reference manual #48163
  • Fix typo in PortInUseException Javadoc #48134
  • Correct section about required setters in "Type-safe Configuration Properties" #48131
  • Use since attribute in configuration properties deprecation consistently #48122
  • Document EndpointJsonMapper and management.endpoints.jackson.isolated-json-mapper #48115
  • Document support for configuring servlet context init parameters using properties #48112
  • Some configuration properties are not documented in the appendix #48095
  • Clarify how warnings about soon-to-expire SSL certificates are reported #48063
  • Document how to use ContextPropagatingTaskDecorator for propagating trace context over thread boundaries #48053
  • Document the level of support for the OpenTelemetry APIs #47960
  • Document that you need to build with Java 25 for buildpack build-image Graal support #45501

🔨 Dependency Upgrades

  • Upgrade to Cassandra Driver 4.19.2 #48184
  • Upgrade to DB2 JDBC 12.1.3.0 #48087
  • Upgrade to Elasticsearch Client 9.2.1 #48137
  • Upgrade to GraphQL Java 25.0 #48034
  • Upgrade to Hibernate 7.1.8.Final #48150
  • Upgrade to Jackson Bom 3.0.2 #48089
  • Upgrade to Jetty 12.1.4 #48120
  • Upgrade to Jetty Reactive HTTPClient 4.1.4 #48151
  • Upgrade to jOOQ 3.19.28 #48090
  • Upgrade to Kafka 4.1.1 #48185
  • Upgrade to Logback 1.5.21 #48091
  • Upgrade to Micrometer 1.16.0 #47820
  • Upgrade to Micrometer Tracing 1.6.0 #47821
  • Upgrade to MySQL 9.5.0 #48092
  • Upgrade to Native Build Tools Plugin 0.11.3 #48051
  • Upgrade to Neo4j Java Driver 6.0.2 #47997
  • Upgrade to Prometheus Client 1.4.3 #48093
  • Upgrade to Reactor Bom 2025.0.0 #47822
  • Upgrade to Spring AMQP 4.0.0 #47823
  • Upgrade to Spring Batch 6.0.0 #47834
  • Upgrade to Spring Data Bom 2025.1.0 #47824
  • Upgrade to Spring Framework 7.0.1 #48168
  • Upgrade to Spring GraphQL 2.0.0 #47826
  • Upgrade to Spring HATEOAS 3.0.0 #47827
  • Upgrade to Spring Integration 7.0.0 #47828
  • Upgrade to Spring Kafka 4.0.0 #47829
  • Upgrade to Spring LDAP 4.0.0 #47999
  • Upgrade to Spring Pulsar 2.0.0 #47830
  • Upgrade to Spring RESTDocs 4.0.0 #47831
  • Upgrade to Spring Security 7.0.0 #47832
  • Upgrade to Spring Session 4.0.0 #48000
  • Upgrade to Spring WS 5.0.0 #47833
  • Upgrade to Testcontainers 2.0.2 [#48152](https://github.com/spring-...
Read more

v3.5.8

20 Nov 14:16

Choose a tag to compare

⚠️ Noteworthy changes

🐞 Bug Fixes

  • Gradle war task does not exclude starter POMs from lib-provided #48196
  • Testcontainers integration fails on Docker 29.0.0 #48192
  • SslMeterBinder doesn't register metrics for dynamically added bundles if no bundles exist at bind time #48180
  • Properties bound in the child management context ignore the parent's environment prefix #48176
  • ssl.chain.expiry metrics doesn't update for dynamically registered SSL bundles #48153
  • Auto-configuration exclusions are checked using a different class loader to the one that loads auto-configuration classes #48129
  • New arm64 macbooks fail to bootBuildImage due to incorrect platform image #48127
  • NullPointerException when using @ConditionalOnSingleCandidate with multiple manually registered singletons #48123
  • Buildpack fails with recent Docker installs due to hardcoded version in URL #48102
  • Image building may fail when specifying a platform if an image has already been built with a different platform #48098
  • Undertow's ServletContext is destroy too early, making it unusable in @PreDestroy methods #48061
  • PortInUseException incorrectly thrown on failure to bind port due to Netty IP misconfiguration #48058
  • Auto-configured JCacheMetrics cannot be customized #48056
  • WebSecurityCustomizer beans are excluded by WebMvcTest #48054
  • Devtools Restarter does not work with a parameterless main method #47987
  • Setting 'max-uri-tags' does not prevent unlimited meter growth on any AutoConfiguredCompositeMeterRegistry #47923
  • Docker response 407 is not handled correctly resulting in no error message #47900
  • spring-boot-maven-plugin process-aot goal does not find package-private main method #47780

📔 Documentation

  • Revise AWS section of "Deploying to the Cloud" in reference manual #48156
  • Fix typo in PortInUseException Javadoc #48133
  • Correct section about required setters in "Type-safe Configuration Properties" #48130
  • Document EndpointObjectMapper and management.endpoints.jackson.isolated-object-mapper #48114
  • Document support for configuring servlet context init parameters using properties #48111
  • Clarify how warnings about soon-to-expire SSL certificates are reported #48062
  • Document how to use ContextPropagatingTaskDecorator for propagating trace context over thread boundaries #48052
  • Use since attribute in configuration properties deprecation consistently #47980
  • BootstrapContext#getOrElseThrow has incorrect reference to IllegalStateException #47905
  • Clarify when BootstrapContext get methods may return null rather than throwing an exception or calling the fallback supplier #47898
  • Document that Actuator endpoint may have at most one extension of each type #47873
  • Limit Kotlin API documentation to Kotlin-specific APIs #47859
  • Adapt AOTCache documentation to JEP 514 #47274

🔨 Dependency Upgrades

  • Downgrade to Cassandra Driver 4.19.0 #47926
  • Upgrade to AspectJ 1.9.25 #48005
  • Upgrade to Caffeine 3.2.3 #48006
  • Upgrade to Cassandra Driver 4.19.2 #48183
  • Upgrade to DB2 JDBC 12.1.3.0 #48083
  • Upgrade to Hibernate 6.6.36.Final #48148
  • Upgrade to Jackson Bom 2.19.4 #48008
  • Upgrade to Jetty 12.0.30 #48118
  • Upgrade to Jetty Reactive HTTPClient 4.0.13 #48149
  • Upgrade to jOOQ 3.19.28 #48084
  • Upgrade to Logback 1.5.21 #48085
  • Upgrade to Micrometer 1.15.6 #48009
  • Upgrade to Micrometer Tracing 1.5.6 #48010
  • Upgrade to MySQL 9.5.0 #48011
  • Upgrade to Neo4j Java Driver 5.28.10 #48044
  • Upgrade to Quartz 2.5.1 #48012
  • Upgrade to R2DBC Postgresql 1.0.9.RELEASE #48013
  • Upgrade to Reactor Bom 2024.0.12 #48014
  • Upgrade to Spring Data Bom 2025.0.6 #48039
  • Upgrade to Spring Framework 6.2.14 #48166
  • Upgrade to Spring Integration 6.5.4 #48040
  • Upgrade to Spring Kafka 3.3.11 #48041
  • Upgrade to Spring Pulsar 1.2.12 #48042
  • Upgrade to Spring Security 6.5.7 #48043
  • Upgrade to Tomcat 10.1.49 #48086

❤️ Contributors

Thank you to all the contributors who worked on this release:

@K-jun98, @TerryTaoYY, @hojooo, @linw-bai, @mipo256, @namest504, @ngocnhan-tran1996, @nosan, @scottfrederick, @siva-sai-udaygiri, @tschut, and @vpavic

v3.4.12

20 Nov 11:22

Choose a tag to compare

⚠️ Noteworthy changes

🐞 Bug Fixes

  • Gradle war task does not exclude starter POMs from lib-provided #48195
  • Testcontainers integration fails on Docker 29.0.0 #48104
  • NullPointerException when using @ConditionalOnSingleCandidate with multiple manually registered singletons #48117
  • Buildpack fails with recent Docker installs due to hardcoded version in URL #48050
  • PortInUseException incorrectly thrown on failure to bind port due to Netty IP misconfiguration #47618
  • Image building may fail when specifying a platform if an image has already been built with a different platform #47292
  • Setting 'max-uri-tags' does not prevent unlimited meter growth on any AutoConfiguredCompositeMeterRegistry #47285
  • WebSecurityCustomizer beans are excluded by WebMvcTest #47255
  • Docker response 407 is not handled correctly resulting in no error message #47180
  • Undertow's ServletContext is destroy too early, making it unusable in @PreDestroy methods #47141
  • New arm64 macbooks fail to bootBuildImage due to incorrect platform image #46665
  • Auto-configured JCacheMetrics cannot be customized #46212
  • Properties bound in the child management context ignore the parent's environment prefix #45858

📔 Documentation

  • Fix typo in PortInUseException Javadoc #48124
  • Document support for configuring servlet context init parameters using properties #47951
  • BootstrapContext#getOrElseThrow has incorrect reference to IllegalStateException #47903
  • Clarify when BootstrapContext get methods may return null rather than throwing an exception or calling the fallback supplier #47896
  • Document how to use ContextPropagatingTaskDecorator for propagating trace context over thread boundaries #47893
  • Limit Kotlin API documentation to Kotlin-specific APIs #47763
  • Document that Actuator endpoint may have at most one extension of each type #47740
  • Some spring.test.* properties are not documented #47236
  • Document EndpointObjectMapper and management.endpoints.jackson.isolated-object-mapper #47039
  • Clarify how warnings about soon-to-expire SSL certificates are reported #45564
  • Correct section about required setters in "Type-safe Configuration Properties" #43138

🔨 Dependency Upgrades

  • Upgrade to AspectJ 1.9.25 #48015
  • Upgrade to Hibernate 6.6.36.Final #48146
  • Upgrade to Jackson Bom 2.18.5 #48017
  • Upgrade to Jetty 12.0.30 #48119
  • Upgrade to Jetty Reactive HTTPClient 4.0.13 #48147
  • Upgrade to jOOQ 3.19.28 #48078
  • Upgrade to Logback 1.5.21 #48079
  • Upgrade to Micrometer 1.14.13 #48018
  • Upgrade to Micrometer Tracing 1.4.12 #48019
  • Upgrade to MySQL 9.5.0 #48020
  • Upgrade to Neo4j Java Driver 5.28.10 #48030
  • Upgrade to R2DBC Postgresql 1.0.9.RELEASE #48021
  • Upgrade to Reactor Bom 2024.0.12 #48022
  • Upgrade to Spring Data Bom 2024.1.12 #48024
  • Upgrade to Spring Framework 6.2.14 #48165
  • Upgrade to Spring Integration 6.4.9 #48026
  • Upgrade to Spring Kafka 3.3.11 #48027
  • Upgrade to Spring Pulsar 1.2.12 #48028
  • Upgrade to Spring Security 6.4.13 #48029
  • Upgrade to Tomcat 10.1.49 #48080

❤️ Contributors

Thank you to all the contributors who worked on this release:

@K-jun98, @hojooo, @mipo256, @namest504, @ngocnhan-tran1996, @nosan, @siva-sai-udaygiri, and @tschut

v4.0.0-RC2

06 Nov 21:46

Choose a tag to compare

v4.0.0-RC2 Pre-release
Pre-release

⭐ 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 @AutoConfigureWebMvc configured 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
  • @JsonTest and @AutoConfigureJson fail 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

23 Oct 23:20

Choose a tag to compare

v4.0.0-RC1 Pre-release
Pre-release

⭐ 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 @ControllerAdvice support 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
  • @AutoConfigureHttpGraphQlTester should 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...
Read more

v3.5.7

23 Oct 13:09

Choose a tag to compare

⭐ 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 @Bean annotation #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

23 Oct 08:34

Choose a tag to compare

🐞 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 @Bean annotation #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

18 Sep 17:08

Choose a tag to compare

v4.0.0-M3 Pre-release
Pre-release

⭐ 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 @OptionalParameter with 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...
Read more

v3.5.6

18 Sep 13:06

Choose a tag to compare

🐞 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

18 Sep 10:28

Choose a tag to compare

🐞 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