Spring Framework 7.0.0-M7 available now

Releases | Brian Clozel | July 17, 2025 | ...

On behalf of the team and everyone who has contributed, I am pleased to announce a new milestone for the next Spring Framework generation. We have compiled all the upgrade information, new features and deprecations on the Spring Framework 7.0 release notes preview page.

Resilience Features

After the introduction of the org.springframework.core.retry package in 7.0.0-M6, effectively moving features from the former "spring-retry" project, we recently introduced dedicated @Retryable, @ConcurrencyLimit and @EnableResilientMethods annotations. This is now documented in the "Resilience Features" section of the reference documentation.

Introducing JmsClient and revisiting JdbcClient

After JdbcClient and RestClient in 6.1, we are now introducing a JmsClient: with common send and receive operations against a JMS destination, dealing with Spring's common Message or with payload values, throwing MessagingException in alignment with the "spring-messaging" module. This is effectively an alternative to JmsMessagingTemplate, also delegating to Spring's JmsTemplate for performing actual operations.

You can find code snippets in the JmsClient Javadoc.

API Versioning updates

We have significantly improved the API Versioning support in this release. On top of resolving API versions in media types, applications now support API deprecations, validation, a fixed set of versions, and more. This is completing the umbrella ticket for this feature and we documented it in the API Versioning for MVC and API Versioning for WebFlux sections of the reference documentation.

Message converters configuration with HttpMessageConverters

Similar to the codecs configuration on the reactive side with WebClient and WebFlux server applications, we have introduced the new HttpMessageConverters class for an easier and centralized experience when it comes to classpath detection of HTTP message converters and their global setup.

In practice, you will encounter them on new configuration methods. For example, WebMvcConfigurer#configureMessageConverters will let you configure a custom message converter. There are similar methods on RestTemplate and RestClient as well.

Pausing of Test Application Contexts

The Spring TestContext framework is caching application context instances within test suites for faster runs. As of Spring Framework 7.0, we now pause test application contexts when they're not used. This means an application context stored in the context cache will be stopped when it is no longer actively in use and automatically restarted the next time the context is retrieved from the cache. Specifically, the latter will restart all auto-startup beans in the application context, effectively restoring the lifecycle state.

And much more!

There are plenty of other changes, like the Kotlin 2.2.0 upgrade, or the Hibernate 7.0 support and Hibernate 5.x/6.x backwards compatibility concerns. As usual, you can check the detailed changelog for more details.

7.0.0-M7 is now available from https://repo.spring.io and Maven Central.

Project Page | GitHub | Issues | Documentation

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all