Releases: spring-projects/spring-boot
v3.5.3
v3.5.2
v3.5.1
⚠️ Noteworthy Changes
- This release upgrades to Tomcat 10.1.42 which has introduced limits for part count and header size in
multipart/form-data
requests. These limits can be customized usingserver.tomcat.max-part-count
andserver.tomcat.max-part-header-size
respectively.
⭐ New Features
- Allow Specifying ConfigData.Options On ConfigDataEnvironmentContributors #42932
🐞 Bug Fixes
- Executable JAR application class encounters performance issues when classpath URLs reference a host #46028
- Loading from spring.factories may fail with a ClassNotFoundException when the TCCL changes between calls #46019
- spring.couchbase.authentication.jks.private-key-password has no effect #46006
- Actuator heapdump endpoint is failing on modern OpenJ9 JVMs #46005
- UnboundConfigurationPropertiesException is no longer thrown from IndexedElementsBinder #45994
- DataSouceBuilder can fail with a NPE when the driver is null #45992
- JSON writer incorrectly escapes forward slash which can cause structure logging issues #45980
- ManagementContextAutoConfiguration adds a property source that degrades binding performance #45968
- ClientHttpConnectorAutoConfiguration fails to load when 'java.net.http.HttpClient' is unavailable #45955
- It is not possible to opt-out of profile validation or use profile names that contain '.' #45947
- GraphQlProperties.DeprecatedSse is not annotated as deprecated #45878
- SpringApplication.setEnvironmentPrefix is ignored when reading MANAGEMENT_SERVER_PORT #45857
- Write and delete operations no longer work in the Cloud Foundry actuator support with Spring Security due to CSRF protection #45848
- ConditionalOnAvailableEndpoint does not use the ConditionContext's ClassLoader to load exposure outcome contributors #45803
- Binding no longer works with sytem environment properties that are not upper case #45741
- ManagementWebServerFactoryCustomizer and ManagementErrorPageCustomizer should not have the same order #45736
- Default version of Awailitility is not compatible with Kotlin 1.9 baseline #45673
- Spring Boot 3.5's dependency management should have been upgraded to Lettuce 6.6.0.RELEASE #45670
- Spring Boot 3.5's dependency management should have been upgraded to Jedis 6.0.0 #45669
- SAML2 autoconfiguration is not imported by
@WebMvcTest
#45666 - Spring Boot 3.5's dependency management should have been upgraded to MongoDB 5.5.0 #45660
📔 Documentation
- Fix Docker security options links in Packaging OCI images sections #46021
- Improve documentation for configuring Spring Security with '/error' #46009
- Timestamps in Retrieving Audit Events examples do not match the accompanying text #45997
- Add SSL response structure to actuator info endpoint documentation #45921
- Update javadoc of test slice annotations to suggest MockitoBean rather than MockBean #45915
- Include configuration classes from all modules in the "Auto-configuration Classes" appendix #45863
- Links to Testcontainers javadoc for many classes not in the core testcontainers module do not work #45844
- Update documentation to reflect changes in TestRestTemplate's default redirect behavior #45842
- Deprecation replacement for spring.codec.* properties has a typo #45743
- Gradle Shadow Plugin link in the reference guide is outdated #45740
- Example of using prometheus-metrics-exporter-pushgateway has wrong artifactId #45684
- Document use of git-commit-id-maven-plugin consistently #45683
- Update javadoc of Configurer classes that apply sensible defaults to describe how they're typically used #45656
🔨 Dependency Upgrades
- Upgrade to Build Helper Maven Plugin 3.6.1 #45827
- Upgrade to Byte Buddy 1.17.6 #45981
- Upgrade to Caffeine 3.2.1 #45864
- Upgrade to DB2 JDBC 12.1.2.0 #45942
- Upgrade to Git Commit ID Maven Plugin 9.0.2 #45828
- Upgrade to Groovy 4.0.27 #45829
- Upgrade to Hibernate 6.6.18.Final #45958
- Upgrade to HttpClient5 5.5 #46031
- Upgrade to Infinispan 15.2.4.Final #45943
- Upgrade to Jackson Bom 2.19.1 #45982
- Upgrade to Jaybird 6.0.2 #45832
- Upgrade to Jetty 12.0.22 #45834
- Upgrade to Jetty Reactive HTTPClient 4.0.10 #45833
- Upgrade to jOOQ 3.19.24 #45944
- Upgrade to Micrometer 1.15.1 #45776
- Upgrade to Micrometer Tracing 1.5.1 #45777
- Upgrade to MongoDB 5.5.1 #45865
- Upgrade to Netty 4.1.122.Final #45835
- Upgrade to Postgresql 42.7.7 #45945
- Upgrade to Prometheus Client 1.3.8 #45837
- Upgrade to Pulsar 4.0.5 #45838
- Upgrade to Reactor Bom 2024.0.7 #45778
- Upgrade to REST Assured 5.5.5 #45839
- Upgrade to Spring Authorization Server 1.5.1 #45779
- Upgrade to Spring Data Bom 2025.0.1 #45780
- Upgrade to Spring Framework 6.2.8 #45781
- Upgrade to Spring HATEOAS 2.5.1 #45946
- Upgrade to Spring Kafka 3.3.7 #45782
- Upgrade to Spring LDAP 3.3.1 #45783
- Upgrade to Spring Pulsar 1.2.7 #45784
- Upgrade to Spring RESTDocs 3.0.4 #45785
- Upgrade to Spring Security 6.5.1 #45786
- Upgrade to Spring Session 3.5.1 #45787
- Upgrade to Testcontainers 1.21.2 #46029
- Upgrade to Tomcat 10.1.42 #45872
- Upgrade to UnboundID LDAPSDK 7.0.3 #45983
- Upgrade to XmlUnit2 2.10.2 #45841
- Upgrade to Zipkin Reporter 3.5.1 #45826
❤️ Contributors
Thank you to all the contributors ...
v3.4.7
⚠️ Noteworthy Changes
- This release upgrades to Tomcat 10.1.42 which has introduced limits for part count and header size in
multipart/form-data
requests. These limits can be customized usingserver.tomcat.max-part-count
andserver.tomcat.max-part-header-size
respectively.
🐞 Bug Fixes
- Executable JAR application class encounters performance issues when classpath URLs reference a host #46027
- Loading from spring.factories may fail with a ClassNotFoundException when the TCCL changes between calls #46018
- Actuator heapdump endpoint is failing on modern OpenJ9 JVMs #46004
- DataSouceBuilder can fail with a NPE when the driver is null #45991
- JSON writer incorrectly escapes forward slash which can cause structure logging issues #45972
- spring.couchbase.authentication.jks.private-key-password has no effect #45883
- ConditionalOnAvailableEndpoint does not use the ConditionContext's ClassLoader to load exposure outcome contributors #45800
- ManagementWebServerFactoryCustomizer and ManagementErrorPageCustomizer should not have the same order #45728
- SAML2 autoconfiguration is not imported by
@WebMvcTest
#45650
📔 Documentation
- Fix Docker security options links in Packaging OCI images sections #46020
- Improve documentation for configuring Spring Security with '/error' #46008
- Timestamps in Retrieving Audit Events examples do not match the accompanying text #45996
- Update javadoc of test slice annotations to suggest MockitoBean rather than MockBean #45887
- Include configuration classes from all modules in the "Auto-configuration Classes" appendix #45861
- Links to Testcontainers javadoc for many classes not in the core testcontainers module do not work #45843
- Add SSL response structure to actuator info endpoint documentation #45792
- Gradle Shadow Plugin link in the reference guide is outdated #45739
- Document use of git-commit-id-maven-plugin consistently #45682
- Update javadoc of Configurer classes that apply sensible defaults to describe how they're typically used #45655
- Clarify the situation with support for Prometheus PushGateway and the deprecated simpleclient #45649
🔨 Dependency Upgrades
- Upgrade to Build Helper Maven Plugin 3.6.1 #45812
- Upgrade to Git Commit ID Maven Plugin 9.0.2 #45813
- Upgrade to Groovy 4.0.27 #45814
- Upgrade to Hibernate 6.6.18.Final #45956
- Upgrade to Infinispan 15.0.15.Final #45816
- Upgrade to Jackson Bom 2.18.4.1 #45957
- Upgrade to Jaybird 5.0.8.java11 #45817
- Upgrade to Jetty 12.0.22 #45819
- Upgrade to Jetty Reactive HTTPClient 4.0.10 #45818
- Upgrade to Micrometer 1.14.8 #45763
- Upgrade to Micrometer Tracing 1.4.7 #45764
- Upgrade to Netty 4.1.122.Final #45820
- Upgrade to Postgresql 42.7.6 #45821
- Upgrade to Prometheus Client 1.3.8 #45822
- Upgrade to Pulsar 3.3.7 #45823
- Upgrade to Reactor Bom 2024.0.7 #45765
- Upgrade to REST Assured 5.5.5 #45824
- Upgrade to Spring Authorization Server 1.4.4 #45766
- Upgrade to Spring Data Bom 2024.1.7 #45767
- Upgrade to Spring Framework 6.2.8 #45768
- Upgrade to Spring Kafka 3.3.7 #45769
- Upgrade to Spring LDAP 3.2.13 #45770
- Upgrade to Spring Pulsar 1.2.7 #45771
- Upgrade to Spring RESTDocs 3.0.4 #45772
- Upgrade to Spring Security 6.4.7 #45773
- Upgrade to Spring Session 3.4.4 #45774
- Upgrade to Spring WS 4.0.15 #45775
- Upgrade to Tomcat 10.1.42 #45870
- Upgrade to XmlUnit2 2.10.2 #45825
❤️ Contributors
Thank you to all the contributors who worked on this release:
@chanbinme, @csbiy, @davidlj95, @izeye, @ngocnhan-tran1996, @nicolasgarea, @nosan, @quaff, @shekharAggarwal, and @wonyongg
v3.3.13
⚠️ Noteworthy Changes
- This release upgrades to Tomcat 10.1.42 which has introduced limits for part count and header size in
multipart/form-data
requests. These limits can be customized usingserver.tomcat.max-part-count
andserver.tomcat.max-part-header-size
respectively.
🐞 Bug Fixes
- Executable JAR application class encounters performance issues when classpath URLs reference a host #46015
- Loading from spring.factories may fail with a ClassNotFoundException when the TCCL changes between calls #45984
- DataSouceBuilder can fail with a NPE when the driver is null #45976
- Actuator heapdump endpoint is failing on modern OpenJ9 JVMs #45973
📔 Documentation
- Fix Docker security options links in Packaging OCI images sections #46016
- Timestamps in Retrieving Audit Events examples do not match the accompanying text #45995
- Links to Testcontainers javadoc for many classes not in the core testcontainers module do not work #45802
- Gradle Shadow Plugin link in the reference guide is outdated #45720
- Document use of git-commit-id-maven-plugin consistently #45677
- Improve documentation for configuring Spring Security with '/error' #45663
- Clarify the situation with support for Prometheus PushGateway and the deprecated simpleclient #44392
- Update javadoc of Configurer classes that apply sensible defaults to describe how they're typically used #42878
🔨 Dependency Upgrades
- Upgrade to Groovy 4.0.27 #45805
- Upgrade to Infinispan 15.0.15.Final #45806
- Upgrade to Jaybird 5.0.8.java11 #45807
- Upgrade to Jetty 12.0.22 #45809
- Upgrade to Jetty Reactive HTTPClient 4.0.10 #45808
- Upgrade to jOOQ 3.19.24 #45940
- Upgrade to Micrometer 1.13.15 #45749
- Upgrade to Micrometer Tracing 1.3.13 #45750
- Upgrade to Netty 4.1.122.Final #45810
- Upgrade to Postgresql 42.7.7 #45941
- Upgrade to Reactor Bom 2023.0.19 #45751
- Upgrade to Spring AMQP 3.1.12 #45752
- Upgrade to Spring Authorization Server 1.3.7 #45753
- Upgrade to Spring Data Bom 2024.0.13 #45754
- Upgrade to Spring Framework 6.1.21 #45755
- Upgrade to Spring Integration 6.3.11 #45756
- Upgrade to Spring Kafka 3.2.10 #45757
- Upgrade to Spring LDAP 3.2.13 #45758
- Upgrade to Spring Pulsar 1.1.13 #45759
- Upgrade to Spring RESTDocs 3.0.4 #45760
- Upgrade to Spring Security 6.3.10 #45761
- Upgrade to Spring WS 4.0.15 #45762
- Upgrade to Tomcat 10.1.42 #45869
❤️ Contributors
Thank you to all the contributors who worked on this release:
@chanbinme, @davidlj95, @ngocnhan-tran1996, @nicolasgarea, @nosan, @quaff, and @wonyongg
v3.5.0
Full release notes for Spring Boot 3.5 are available on the wiki.
⭐ New Features
- Make heapdump endpoint restricted by default #45624
- Remove SSL status tag from metrics #45602
- Remove 'spring.http.client' deprecation and change 'spring.http.reactiveclient.settings' to 'spring.http.reactiveclient' #45507
🐞 Bug Fixes
- Unable to override/set nested ConfigurationProperties by passing as a system property #45639
- ValidationAutoConfiguration triggers early initialization of properties binding #45618
- Micrometer "enable" annotations property does not cover observed aspect #45617
- spring.graphql.sse.timeout is no longer exposed #45613
- SpringApplication.setEnvironmentPrefix is ignored when reading SPRING_PROFILES_ACTIVE #45549
- IllegalStateException when extracting using layers a module with no code of its own #45449
- Removed spring.batch.initialize-schema property is still considered #45380
- ReactorHttpClientBuilder does not offer a factory method to create the HttpClient #45378
- Suggested values for spring.jpa.hibernate.ddl-auto are not aligned with Hibernate #45351
- Custom default units declared on a field are ignored when binding properties in a native image #45347
- DockerRegistryConfigAuthentication uses the wrong serverUrl as a fallback for the Credentials helper #45345
- Various spring.datasource properties are mistakenly marked as ignored #45342
- JerseyWebApplicationInitializer always gets loaded, setting a ServletContext initParameter #45297
- DockerRegistryConfigAuthentication does not align with Docker CLI #45292
- Unlike the Docker CLI, "\x00" characters are not trimmed from a decoded Docker Registry password #45290
- CloudFoundry security matcher logs a warning due to use of the 'ignoring()' method #32622
📔 Documentation
- Document the java info contribution #45634
- Document the process info contribution #45632
- Document the os info contribution #45630
- Document typical spring.application.group and name use #45628
- Document that bean methods should be static when annotated with
@ConfigurationPropertiesBinding
#45626 - Document the way that primary Kotlin constructors are used when binding #45553
- Improve "profile" reference documentation with additional admonitions #45551
- Improve setEnvironmentPrefix(...) reference documentation #45376
- Document all the available Testcontainers integrations #45367
- Document when a spring.config.import value is relative and when it is fixed #45363
- Update org.cyclonedx.bom version in docs to 2.3.0 #45320
- Update link to "Parameter Name Retention" section of Spring Framework's release notes #45299
🔨 Dependency Upgrades
- Prevent upgrade to Prometheus Client 1.3.7 #45541
- Upgrade to Couchbase Client 3.8.1 #45539
- Upgrade to Elasticsearch 8.18.1 #45447
- Upgrade to GraphQL Java 24.0 #45588
- Upgrade to Hibernate 6.6.15.Final #45540
- Upgrade to HttpClient5 5.4.4 #45462
- Upgrade to Jackson Bom 2.18.4 #45463
- Upgrade to Jackson Bom 2.19.0 #45542
- Upgrade to Jetty 12.0.21 #45519
- Upgrade to jOOQ 3.19.23 #45465
- Upgrade to Kafka 3.9.1 #45606
- Upgrade to Micrometer 1.15.0 #45432
- Upgrade to Micrometer Tracing 1.5.0 #45433
- Upgrade to Neo4j Java Driver 5.28.5 #45446
- Upgrade to Netty 4.1.121.Final #45466
- Upgrade to R2DBC Proxy 1.1.6.RELEASE #45467
- Upgrade to Reactor Bom 2024.0.6 #45434
- Upgrade to REST Assured 5.5.2 #45571
- Upgrade to Spring Authorization Server 1.5.0 #45435
- Upgrade to Spring Data Bom 2025.0.0 #45436
- Upgrade to Spring Framework 6.2.7 #45437
- Upgrade to Spring GraphQL 1.4.0 #45438
- Upgrade to Spring HATEOAS 2.5.0 #45559
- Upgrade to Spring Integration 6.5.0 #45439
- Upgrade to Spring Kafka 3.3.6 #45440
- Upgrade to Spring LDAP 3.3.0 #45441
- Upgrade to Spring Pulsar 1.2.6 #45442
- Upgrade to Spring Retry 2.0.12 #45443
- Upgrade to Spring Security 6.5.0 #45444
- Upgrade to Spring Session 3.5.0 #45560
- Upgrade to Spring WS 4.1.0 #45445
- Upgrade to Tomcat 10.1.41 #45520
- Upgrade to XmlUnit2 2.10.1 #45607
❤️ Contributors
Thank you to all the contributors who worked on this release:
@ahrytsiuk, @izeye, @lhotari, @ngocnhan-tran1996, @nosan, @quaff, @thecooldrop, and @yybmion
v3.4.6
🐞 Bug Fixes
- Micrometer "enable" annotations property does not cover observed aspect #45616
- SpringApplication.setEnvironmentPrefix is ignored when reading SPRING_PROFILES_ACTIVE #45548
- IllegalStateException when extracting using layers a module with no code of its own #45448
- Suggested values for spring.jpa.hibernate.ddl-auto are not aligned with Hibernate #45350
- Custom default units declared on a field are ignored when binding properties in a native image #45346
- JerseyWebApplicationInitializer always gets loaded, setting a ServletContext initParameter #45296
📔 Documentation
- Document the java info contribution #45633
- Document the process info contribution #45631
- Document the os info contribution #45629
- Document typical spring.application.group and name use #45627
- Document that bean methods should be static when annotated with
@ConfigurationPropertiesBinding
#45625 - Document the way that primary Kotlin constructors are used when binding #45552
- Improve "profile" reference documentation with additional admonitions #45550
- Improve setEnvironmentPrefix(...) reference documentation #45375
- Document all the available Testcontainers integrations #45366
- Document when a spring.config.import value is relative and when it is fixed #45362
- Update link to "Parameter Name Retention" section of Spring Framework's release notes #45298
🔨 Dependency Upgrades
- Upgrade to Hibernate 6.6.15.Final #45537
- Upgrade to HttpClient5 5.4.4 #45455
- Upgrade to Jackson Bom 2.18.4 #45456
- Upgrade to Jetty 12.0.21 #45516
- Upgrade to jOOQ 3.19.23 #45458
- Upgrade to Micrometer 1.14.7 #45412
- Upgrade to Micrometer Tracing 1.4.6 #45413
- Upgrade to Neo4j Java Driver 5.28.5 #45431
- Upgrade to Netty 4.1.121.Final #45459
- Upgrade to R2DBC Proxy 1.1.6.RELEASE #45460
- Upgrade to Reactor Bom 2024.0.6 #45414
- Upgrade to REST Assured 5.5.2 #45570
- Upgrade to Spring Data Bom 2024.1.6 #45415
- Upgrade to Spring Framework 6.2.7 #45417
- Upgrade to Spring Integration 6.4.5 #45419
- Upgrade to Spring Kafka 3.3.6 #45421
- Upgrade to Spring Pulsar 1.2.6 #45423
- Upgrade to Spring Retry 2.0.12 #45425
- Upgrade to Spring Security 6.4.6 #45558
- Upgrade to Spring WS 4.0.14 #45581
- Upgrade to Tomcat 10.1.41 #45517
- Upgrade to XmlUnit2 2.10.1 #45605
❤️ Contributors
Thank you to all the contributors who worked on this release:
@ahrytsiuk, @izeye, @ngocnhan-tran1996, @nosan, @quaff, @thecooldrop, and @yybmion
v3.3.12
🐞 Bug Fixes
- Micrometer "enable" annotations property does not cover observed aspect #45601
- SpringApplication.setEnvironmentPrefix is ignored when reading SPRING_PROFILES_ACTIVE #45387
- IllegalStateException when extracting using layers a module with no code of its own #45385
- Custom default units declared on a field are ignored when binding properties in a native image #45343
- Suggested values for spring.jpa.hibernate.ddl-auto are not aligned with Hibernate #45336
- JerseyWebApplicationInitializer always gets loaded, setting a ServletContext initParameter #45289
📔 Documentation
- Document that bean methods should be static when annotated with
@ConfigurationPropertiesBinding
#45621 - Document typical spring.application.name use #45597
- Document the process info contribution #45567
- Document the java info contribution #45566
- Document the os info contribution #45565
- Improve "profile" reference documentation with additional admonitions #45522
- Improve setEnvironmentPrefix(...) reference documentation #45370
- Document when a spring.config.import value is relative and when it is fixed #45349
- Update link to "Parameter Name Retention" section of Spring Framework's release notes #45286
- Document the way that primary Kotlin constructors are used when binding #44849
- Document all the available Testcontainers integrations #44187
🔨 Dependency Upgrades
- Upgrade to Jetty 12.0.21 #45513
- Upgrade to jOOQ 3.19.23 #45452
- Upgrade to Micrometer 1.13.14 #45416
- Upgrade to Micrometer Tracing 1.3.12 #45418
- Upgrade to Neo4j Java Driver 5.28.5 #45430
- Upgrade to Netty 4.1.121.Final #45453
- Upgrade to R2DBC Proxy 1.1.6.RELEASE #45454
- Upgrade to Reactor Bom 2023.0.18 #45420
- Upgrade to Spring Data Bom 2024.0.12 #45422
- Upgrade to Spring Framework 6.1.20 #45424
- Upgrade to Spring Integration 6.3.10 #45426
- Upgrade to Spring Kafka 3.2.9 #45427
- Upgrade to Spring Pulsar 1.1.12 #45428
- Upgrade to Spring Retry 2.0.12 #45429
- Upgrade to Spring WS 4.0.14 #45580
- Upgrade to Tomcat 10.1.41 #45514
❤️ Contributors
Thank you to all the contributors who worked on this release:
@ahrytsiuk, @izeye, @ngocnhan-tran1996, @nosan, @quaff, @thecooldrop, and @yybmion
v3.5.0-RC1
⭐ New Features
- Add support for Docker's credential stores and helpers #45269
- Introduce 'spring.test.print-condition-evaluation-report' property to control whether the condition evaluation report should be printed when the ApplicationContext fails to start #45268
- Fail fast when both management 'base path' and 'endpoint mapping' are set to '/' #45251
- Allow structured logging with relocated or disabled context elements #45218
- Auto-configure OtlpMetricsSender if available #45204
- Support per-meter configuration for OtlpMetricsProperties #45203
- Migrate from AntPathRequestMatcher to PathPatternRequestMatcher #45163
- Add support for configuring SimpleAsyncTaskExecutor#rejectTasksWhenLimitReached #45155
- Align FilterRegistrationBean empty dispatcher type logic with FilterRegistration annotation #45130
- Add missing attributes to ServletRegistration annotation #45007
- Add missing attributes to FilterRegistration annotation #45005
- Add ClientHttpRequestFactoryBuilderCustomizer support #44987
- Remove RECORD_COMPONENT target from
@DefaultValue
#44984 - AutoConfiguredRestClientSsl should build upon, rather than overwrite, the configuration from HttpClientProperties #44979
- Rename spring.codec properties to spring.http.codecs #44971
- Rename 'spring.http.client' properties to 'spring.http.client.settings' #44958
- Enable RestClientAutoConfiguration in reactive web applications when virtual threads are enabled #44952
- Rename spring.mvc.converters.preferred-json-mapper to spring.http.converters.preferred-json-mapper #44925
- Make it easier to create an integration test for an OAuth2 resource server #44906
- Add spring.kafka.consumer.max-poll-interval configuration property #44901
- Add OtlpGrpcSpanExporterBuilderCustomizer and OtlpHttpSpanExporterBuilderCustomizer customizers #44900
- Improve performance of MapBinder by calculating reused fields only once #44868
- Improve performance of IndexedElementsBinder.assertNoUnboundChildren by not checking all elements #44867
- Add containsDescendantOfCache for system property source #44863
- Bypass SystemEnvironmentPropertySource.resolvePropertyName calls for configuration properties #44862
- Introduce a cache for expensive JavaBeanBinder and ValueObjectBinder #44861
- Allow ConfigurationPropertyCaching overriding for the duration of a bind operation #44860
- Improve SystemEnvironmentPropertyMapper performance by caching results #44858
- Improve ConfigurationPropertyName equals/hashCode performance #44857
- ApplicationInfoPropertySource should be marked as immutable #44856
- Add support for LdapContextSource#referral property #44850
- Auto-configure Otel's MeterProvider where appropriate #44833
- Make it possible to opt in to TaskExecutor auto-configuration when an Executor has already been defined #44659
- Support optional: prefix with logging.log4j2.config.override #44488
- Align TestRestTemplate default redirect settings to be the same as RestTemplate #43431
- Refactor TestRestTemplate to remove need for CustomHttpComponentsClientHttpRequestFactory #43422
- Add ClientHttpConnector builders for WebClient with a similar design to ClientHttpRequestFactoryBuilder #43079
- Use paketobuildpacks/builder-noble-java-tiny as the default image builder #42711
- Broaden OAuth2 client auto-configuration to include non servlet web applications #40997
- Auto-configure a bootstrapExecutor bean to be used by Framework's background bean initialization #39791
- Add a dedicated annotation to register filters and servlets #16500
🐞 Bug Fixes
- In a reactive web app, SslBundle can no longer open store file locations without using a 'file:' prefix #45263
- JsonValueWriter can throw StackOverflowError on deeply nested items #45262
- Spring Boot with native image container image build fails on podman due to directory permissions #45257
- Neo4jReactiveDataAutoConfiguration assumes that certain beans are available #45236
- Wrong jOOQ exception translator with empty db name #45220
- MessageSourceMessageInterpolator does not replace a parameter when the message matches its code #45214
- Logging a Path object using structured logging throws StackOverflowError #45211
- IntegrationMbeanExporter is not eligible for getting processed by all BeanPostProcessors warnings are shown when using JMX #45195
- OAuth2AuthorizationServerJwtAutoConfiguration uses
@ConditionalOnClass
incorrectly #45179 - MongoDB's dependency management is missing Kotlin coroutine driver modules #45160
- ImagePlatform can cause "OS must not be empty" IllegalArgumentException #45154
- ECS structure logging is not compatible with all collectors as it does not use the nested format #45063
- TypeUtils does not handle generics with identical names in different positions #45040
- HttpClient5 5.4.3 breaks local Docker transport #45035
- ConnectionDetailsFactories should use the context class loader to load factories #45014
- spring.datasource.hikari.data-source-class-name cannot be used as a driver class name is always required and Hikari does not accept both #45003
- Post-processing to apply custom JdbcConnectionDetails triggers an NPE in Hikari if the JDBC URL is for an unknown driver #44999
- DataSourceBuilder triggers an NPE in Hikari when trying to build a DataSource with a JDBC URL for an unknown driver #44996
- ClientHttpRequestFactoryBuilder detection does not use the bean class loader #44986
- SSL config does not watch for symlink file changes #44890
- EmbeddedLdapAutoConfiguration should not rely on PreDestroy #44875
- SystemEnvironmentPropertySource is no longer considered immutable #44859
- DataSourceTransactionManagerAutoConfiguration should run after DataSourceAutoConfiguration #44820
📔 Documentation
v3.4.5
🐞 Bug Fixes
- Spring Boot with native image container image build fails on podman due to directory permissions #45256
- Neo4jReactiveDataAutoConfiguration assumes that certain beans are available #45235
- Wrong jOOQ exception translator with empty db name #45219
- MessageSourceMessageInterpolator does not replace a parameter when the message matches its code #45213
- IntegrationMbeanExporter is not eligible for getting processed by all BeanPostProcessors warnings are shown when using JMX #45194
- OAuth2AuthorizationServerJwtAutoConfiguration uses
@ConditionalOnClass
incorrectly #45178 - MongoDB's dependency management is missing Kotlin coroutine driver modules #45159
- ImagePlatform can cause "OS must not be empty" IllegalArgumentException #45153
- TypeUtils does not handle generics with identical names in different positions #45039
- HttpClient5 5.4.3 breaks local Docker transport #45028
- spring.datasource.hikari.data-source-class-name cannot be used as a driver class name is always required and Hikari does not accept both #45002
- Post-processing to apply custom JdbcConnectionDetails triggers an NPE in Hikari if the JDBC URL is for an unknown driver #44998
- DataSourceBuilder triggers an NPE in Hikari when trying to build a DataSource with a JDBC URL for an unknown driver #44995
- SSL config does not watch for symlink file changes #44887
- EmbeddedLdapAutoConfiguration should not rely on PreDestroy #44874
- DataSourceTransactionManagerAutoConfiguration should run after DataSourceAutoConfiguration #44819
- JsonValueWriter can throw StackOverflowError on deeply nested items #44627
- In a reactive web app, SslBundle can no longer open store file locations without using a 'file:' prefix #44535
- Logging a Path object using structured logging throws StackOverflowError #44507
📔 Documentation
- Make
@Component
a javadoc link #45258 - Fix documentation links to buildpacks.io #45241
- Clarify the use of multiple profile expressions with "spring.config.activate.on-profile" #45224
- Show the use of token properties in authorization server clients configuration example #45176
- Add details of the purpose of the metrics endpoint #45047
- Escape the asterisk in spring-application.adoc #45033
- Add reference to Styra (OPA) Spring Boot SDK #44976
- Update CDS documentation to cover AOTCache #44970
- WebFlux security documentation incorrectly links to servlet classes #44966
- Replace mentions of deprecated MockBean annotation #44947
- TaskExecution documentation should describe what happens when multiple Executor beans are present #44908
- Documentation lists coordinates for some dependencies that are not actually managed #44879
- Polish javadoc of SpringProfileAction #44826
🔨 Dependency Upgrades
- Upgrade to AspectJ 1.9.24 #45184
- Upgrade to Couchbase Client 3.7.9 #45072
- Upgrade to Hibernate 6.6.13.Final #45073
- Upgrade to HttpClient5 5.4.3 #45074
- Upgrade to HttpCore5 5.3.4 #45075
- Upgrade to Jaybird 5.0.7.java11 #45076
- Upgrade to Jetty 12.0.19 #45077
- Upgrade to jOOQ 3.19.22 #45078
- Upgrade to Lombok 1.18.38 #45079
- Upgrade to MariaDB 3.4.2 #45080
- Upgrade to Maven Failsafe Plugin 3.5.3 #45081
- Upgrade to Maven Surefire Plugin 3.5.3 #45082
- Upgrade to Micrometer 1.14.6 #45085
- Upgrade to Micrometer Tracing 1.4.5 #45086
- Upgrade to Neo4j Java Driver 5.28.4 #45133
- Upgrade to Pulsar 3.3.6 #45083
- Upgrade to Reactor Bom 2024.0.5 #45087
- Upgrade to Spring AMQP 3.2.5 #45088
- Upgrade to Spring Authorization Server 1.4.3 #45089
- Upgrade to Spring Data Bom 2024.1.5 #45090
- Upgrade to Spring Framework 6.2.6 #45091
- Upgrade to Spring GraphQL 1.3.5 #45092
- Upgrade to Spring Integration 6.4.4 #45093
- Upgrade to Spring Kafka 3.3.5 #45094
- Upgrade to Spring LDAP 3.2.12 #45095
- Upgrade to Spring Pulsar 1.2.5 #45096
- Upgrade to Spring Security 6.4.5 #45097
- Upgrade to Spring Session 3.4.3 #45098
- Upgrade to Spring WS 4.0.13 #45099
- Upgrade to Tomcat 10.1.40 #45084
❤️ Contributors
Thank you to all the contributors who worked on this release:
@EvaristeGalois11, @MelleD, @aahlenst, @ali-jalaal, @erichaagdev, @florgust, @geniusYoo, @izeye, @jonatan-ivanov, @nenros, @nevenc, @ngocnhan-tran1996, @nosan, @quaff, and @rainboyan