Broadcom released Spring Framework 7.0 (announced here) and Spring Boot 4.0 (announced here) in November 2025. This new generation introduces first-class REST API versioning, JSpecify annotations for standardized null safety across the Spring portfolio, and built-in resilience features such as retry and concurrency throttling. Spring Boot 4 migrates to Jackson 3 for JSON processing and splits the monolithic autoconfigure JAR into modules. Spring Framework 7 keeps the JDK 17 baseline while embracing JDK 25, but adopts Jakarta EE 11 and Kotlin 2.2 as new baselines.
The new API versioning feature is now available in Spring MVC and Spring WebFlux. The framework supports path, header, query parameter, and media type versioning strategies. Controllers are configured through ApiVersionStrategy and declare versions directly on mappings such as:
@GetMapping(url = "/accounts/{id}", version = "1.1"
They also have built-in deprecation handling compliant with RFC 9745. The RestClient, WebClient, and HTTP interface clients use the ApiVersionInserter, as do the non-reactive RestTestClient (new in 7.0) and WebTestClient. Both ApiVersionStrategy and ApiVersionInserter are part of the Spring Framework and available to all libraries and applications running on Spring.
Spring Framework 7 completes the migration to standardized JSpecify annotations for null safety across the Spring portfolio. The JSpecify collective includes OpenJDK, Broadcom, Google, JetBrains, and Sonar. Annotations such as @Nullable and @NonNull apply to standard and generic types, arrays, and vararg elements. Kotlin 2 automatically translates JSpecify annotations into Kotlin nullability. IntelliJ IDEA 2025.3 provides first-class support with full coverage, including complex data-flow analysis. Build-time checking with the NullAway project requires at least JDK 21, though JDK 17 support may materialize.
Resilience features from Spring Retry have moved into Spring Framework 7. The @Retryable annotation provides declarative retry support with automatic adaptation for reactive methods, exponential back-off, and jitter. The @ConcurrencyLimit annotation enables declarative concurrency control, particularly valuable with Virtual Threads.
The major breaking change in Jackson 3 is the package relocation from com.fasterxml.jackson to tools.jackson. The recommended JSON mapper is now JsonMapper, which replaces ObjectMapper and provides immutability and format-specific mappers. Default serialization behavior changes set MapperFeature.SORT_PROPERTIES_ALPHABETICALLY to true and DateTimeFeature.WRITE_DATES_AS_TIMESTAMPS to false, which serializes dates as ISO-8601 strings. Applications can still use the deprecated Jackson 2 or even Jackson 2 and 3 at the same time.
Spring Boot 4 modularizes auto-configuration: Many technology-specific modules, such as spring-boot-starter-webmvc and spring-boot-starter-webmvc-test, replace the two monolithic spring-boot-autoconfigure and spring-boot-test-autoconfigure JARs. This reduces the application footprint and prevents IDE auto-complete from suggesting unused classes or configuration properties.
The new releases keep the old JDK 17 baseline because the “current industry consensus is clearly around a Java 17 baseline,” as Juergen Hoeller, Spring Framework project lead, told InfoQ in November 2024. But Spring embraces JDK 25 and all of its features. The Jakarta EE baseline moves from version 9 to version 11. This brings Jakarta Servlet 6.1, Jakarta WebSocket 2.2, Jakarta Validation 3.1, and Jakarta Persistence 3.2. There is also support for Hibernate ORM 7.1, which no longer allows a detached entity to be reassociated with a persistence context. Spring Boot 4 currently does not support the Undertow web server because it is not yet compatible with Jakarta Servlet 6.1.
The new HTTP Interface Groups allow applications to configure many HTTP Interface Clients at once and have them share the same RestClient. Spring Framework 7.1 (expected in November 2026) will deprecate the RestTemplate class in favor of the RestClient interface, while Spring Framework 8 (date to be determined) will remove RestTemplate. The HTTP Service Client enhancements include the new HttpServiceProxyRegistry interface as an additional layer over the HttpServiceProxyFactory class and the ability to configure the HTTP client for HTTP service groups using an HttpServiceGroupConfigurer bean method. The HttpStatus class now includes the new HTTP status codes.
Other improvements include: Spring Boot 4 support for Gradle 9; multi-factor authentication arrives in Spring Security 7; improvements in Kotlin Serialization with a new spring-boot-kotlin-serialization module and corresponding spring-boot-kotlin-serialization-starter; a fluid JmsClient is available; Spring for Apache Kafka 4.0 adds Share Consumer support for Kafka Queues, which distributes records across multiple consumers in a group, whereas traditionally each partition belongs to a single consumer; task scheduling/execution auto-configurations support multiple TaskDecorator beans; AntPathMatcher for HTTP request mappings is deprecated in favor of PathPattern; the removal of classes, methods, and properties that were deprecated in Spring Boot 3.x; and annotations defined in the javax.annotation and javax.inject packages are no longer supported and need to be replaced by their jakarta.annotation and jakarta.inject equivalents.
Further improvements include: application contexts now pause when not in use, saving memory in large test suites; Spring Framework 7 switches to the single-file reachability metadata format for GraalVM Native Image; Spring Data compiles eligible repository queries at build time for faster startup; MongoDB health indicators no longer require Spring Data MongoDB; the new spring-boot-starter-opentelemetry includes all dependencies for OTLP metrics and traces export; and a new expiringChains entry in the SSL Health response shows certificate chains that contain one or more certificates that will expire within the configured threshold management.health.ssl.certificate-validity-warning-threshold.
Notable third-party dependency upgrades include Kotlin 2.2.20, Tomcat 11.0, Jetty 12.1, GraphQL 24, Kafka 4.1.0, Elasticsearch Client 9.1, Hibernate Validator 9.0, Commons Lang3 3.19.0, Liquibase 5.0, Flyway 11.11, MongoDB 5.6.0, Mockito 5.20, and TestContainers 2.0.
Coordinated releases aligned with Spring Framework 7.0 and Spring Boot 4.0 include Spring Cloud 2025.1.0, Spring for GraphQL 2.0, Spring Shell 4.0.0, Spring REST Docs 4.0, Spring Security 7.0, Spring Data 2025.1.1.0, Spring Session 4.0.0, Spring Integration 7.0, Spring Batch 6.0, Spring AMQP 4.0, Spring for Apache Kafka 4.0, Spring for Apache Pulsar 2.0, Spring Web Services 5.0, Spring Vault 4.0, and Spring Modulith 2.0,
The Spring Boot 4 Migration Guide helps with moving to the new release. The last Spring Boot 3 release, Spring Boot 3.5, will get free releases until June 2026 and paid ones until June 2032. More details may be found in the full release notes for Spring Framework 7 and Spring Boot 4.
