Spring Boot 3.4 Release Notes
Spring Boot 3.4.0, released on May 23, 2024, delivers a range of enhancements in HTTP client handling, JSON processing, GraphQL capabilities, and performance tuning. This version aligns with Spring Framework 6.1 and requires Java 17 or later, with support up to Java 23. It incorporates over 120 changes, including bug fixes for SSL, packaging, and testing, alongside major dependency upgrades for better ecosystem compatibility.
Spring Boot 3.4 focuses on refining developer tools, improving structured logging, and streamlining build processes for container images. It supports Jakarta EE 10 and reactive patterns, ideal for microservices, cloud deployments, and enterprise applications with seamless upgrades from prior releases.
New Features
Added withDefaultRequestConfigCustomizer method to HttpComponentsClientHttpRequestFactoryBuilder for easier HTTP client setup. JsonWriter now fails on duplicate names to ensure valid output. Introduced JsonObjectDeserializer.nullSafeValue with a Function mapper for secure deserialization.
GraphQL over Server-Sent Events gains timeout property support. HikariCP integration logs warnings for unconfigured pool suspension. Removed spring-boot-starter-aop from spring-boot-starter-data-jpa and spring-boot-starter-integration to trim dependencies.
Performance Improvements
ConfigurationPropertiesBinder optimizes by caching bind handlers on first use. ConcurrentReferenceCachingMetadataReaderFactory runs faster for metadata reads. These tweaks reduce overhead in configuration binding and caching scenarios.
Improvements
Fixed typos in structured logging class names. StructuredLoggingJsonProperties customizer now uses Class references over Strings. Documentation updates include full Javadoc links, clarified spring.datasource.type, and reworked DataSource examples.
Added details on GraalVM config files, layers schema in Maven examples, and Eclipse setup links. Corrected build-info for seconds since epoch from project.build.outputTimestamp.
Bug Fixes
Jersey body handling now consistent with Spring WebFlux and MVC. OCI image packaging fixed for docker.io/paketobuildpacks/new-relic buildpack. WebServerPortFileWriter handles extensionless portfiles.
SslOptions.isSpecified returns true only for set ciphers and protocols. SslHealthIndicator avoids NullPointerException with SslStoreBundle.NONE. Added cipher and protocol support to JdkClientHttpRequestFactoryBuilder and JettyClientHttpRequestFactoryBuilder.
Exposed root causes in image loading errors from archives. mvn spring-boot:run works on Windows with non-ASCII paths. Fixed HttpHostConnectException in buildpacks on Windows.
@SpyBean resets properly from FactoryBean output. Removed duplicate MockResolver warnings. Logback processes URLs without .xml endings. Bean conditions respect factory beans.
Default WebSocketMessageBrokerConfigurer avoids overriding custom executors. Docker API X-Registry-Auth header omits authHeader field. ApplicationContextRunner handles duplicate auto-config names consistently.
Dependency Upgrades
| Dependency | Version |
|---|---|
| ActiveMQ | 6.1.4 |
| Byte Buddy | 1.15.10 |
| Couchbase Client | 3.7.5 |
| Elasticsearch Client | 8.15.4 |
| Flyway | 10.20.1 |
| Groovy | 4.0.24 |
| Hibernate | 6.6.2.Final |
| HttpClient5 | 5.4.1 |
| Infinispan | 15.0.11.Final |
| Jackson BOM | 2.18.1 |
| Jetty | 12.0.15 |
| jOOQ | 3.19.15 |
| Kafka | 3.8.1 |
| Lettuce | 6.4.1.RELEASE |
| Logback | 1.5.12 |
| Lombok | 1.18.36 |
| Maven Dependency Plugin | 3.8.1 |
| Maven Failsafe Plugin | 3.5.2 |
| Maven Surefire Plugin | 3.5.2 |
| Micrometer | 1.14.1 |
| Micrometer Tracing | 1.4.0 |
| MongoDB | 5.2.1 |
| Netty | 4.1.115.Final |
| Prometheus Client | 1.3.3 |
| Pulsar Reactive | 0.5.9 |
| Reactor BOM | 2024.0.0 |
| Spring AMQP | 3.2.0 |
| Spring Authorization Server | 1.4.0 |
| Spring Batch | 5.2.0 |
| Spring Data BOM | 2024.1.0 |
| Spring Framework | 6.1.0 |
| Spring HATEOAS | 2.1.0 |
| Spring Integration | 6.2.0 |
| Spring Kafka | 3.2.0 |
| Spring LDAP | 3.2.8 |
| Spring Pulsar | 1.1.0 |
| Spring RESTDocs | 3.0.3 |
| Spring Security | 6.3.1 |
| Spring Session | 3.3.0 |
| Testcontainers | 1.19.4 |
| Tomcat | 10.1.20 |
| Undertow | 2.3.15.Final |
| WebJars Locator Lite | 1.0.1 |
Deprecations
No major deprecations introduced in this release. Focus remains on cleaning up transitive dependencies like spring-boot-starter-aop.
Removals
Removed spring-boot-starter-aop dependency from spring-boot-starter-data-jpa and spring-boot-starter-integration to avoid unnecessary AOP features in those starters.
Migration and Support
Upgrading from 3.3 uses mvn spring-boot:run --spring-boot.upgrade or gradle bootUpgrade for automated dependency and config updates. Test for new JSON behaviors and SSL changes.
Spring Boot 3.4 follows the quarterly cadence, with full support until May 2025 and security patches to November 2026. Review release notes for detailed changelogs and migration guides.