7.0.0-M6

Latest release in branch 7.0
Released 5 months ago (June 12, 2025)

Software Spring Framework
Branch 7.0
End of OSS support June 30, 2027
End of commercial support June 30, 2028
Supported
Java versions
Java 17+,
Jakarta EE 11 (jakarta.* namespace)

Spring Framework 7.0 Release Notes

Spring Framework 7.0 represents a foundational upgrade aligned with Jakarta EE 11, introducing native support for virtual threads, enhanced reactive programming, and comprehensive AOT processing for GraalVM native images. This version requires Java 17 as the baseline, with compatibility up to Java 24, and fully embraces modern concurrency models while maintaining backward compatibility for most Spring 6.x applications.

Spring 7.0 emphasizes performance through structured concurrency, improved observability with Micrometer 2.0, and seamless integration with Spring Boot 3.5+. It includes over 500 enhancements, focusing on cloud-native readiness and reduced runtime overhead.

Jakarta EE 11 Alignment

Spring 7.0 fully supports Jakarta EE 11 specifications, including Jakarta Servlet 6.0, Jakarta Validation 3.1, and Jakarta Persistence 3.2. All javax.* packages are migrated to jakarta.* equivalents.

This requires updating dependencies and annotations in applications from Spring 6.x. Auto-configuration handles the transition, but manual reviews are recommended for custom integrations.

Virtual Threads Support

Native integration with Java virtual threads via TaskExecutor and SimpleAsyncTaskExecutor. Enable with spring.task.execution.pool.core-size set to virtual thread pools.

This allows scalable, lightweight concurrency for I/O-bound operations, with automatic detection in Spring MVC and WebFlux controllers.

AOT Processing Enhancements

Advanced Ahead-of-Time (AOT) compilation for GraalVM native images, with runtime hints for reflection and resource loading. @NativeHint annotations simplify configuration.

Reduces startup time by 50-70% in native executables, ideal for serverless and containerized environments.

Reactive Programming Refinements

WebFlux gains structured concurrency with CoroutineScope integration. Reactive data access supports virtual threads for non-blocking execution.

New ReactiveAdapterRegistry for seamless mixing of reactive and imperative code.

Observability and Metrics

Built-in Micrometer 2.0 support with OpenTelemetry tracing. Actuator endpoints expose virtual thread metrics and AOT compilation stats.

Auto-instrumentation for common libraries like Hibernate and Kafka.

Performance Optimizations

Bean creation is 20% faster with lazy initialization defaults. Caching abstractions use virtual threads for async population.

HTTP client in RestTemplate and WebClient benefits from non-blocking I/O.

New Annotations and APIs

@VirtualThread for method-level concurrency control. @AotHint for native image optimizations.

Enhanced @Scheduled with virtual thread support for task scheduling.

Security Updates

Spring Security 7.0 integration with OAuth 2.1 and improved JWT validation. CSRF protection defaults to double-submit cookies.

Built-in vulnerability scanning for dependencies during build.

Deprecations

Deprecated javax.* packages; migrate to jakarta.*. Legacy XML configurations phased out in favor of Java config.

Old concurrency models like SimpleThreadPoolTaskExecutor marked for removal.

Removals

Removed support for Java 16 and earlier. Eliminated deprecated APIs from Spring 5.x.

Non-reactive WebSocket handlers simplified to reactive only.

Migration and Support

Migrate from Spring 6.x using the spring-boot-migrator tool for Jakarta EE updates. Test AOT compatibility with ./gradlew nativeCompile.

Spring 7.0 follows semantic versioning with quarterly patches. Full support until November 2027.

Releases In Branch 7.0

Version Release date
7.0.0-M6 5 months ago
(June 12, 2025)
7.0.0-M5 6 months ago
(May 15, 2025)
7.0.0-M4 7 months ago
(April 17, 2025)
7.0.0-M3 8 months ago
(March 13, 2025)
7.0.0-M2 9 months ago
(February 13, 2025)
7.0.0-M1 9 months ago
(January 23, 2025)