Get ahead
VMware offers training and certification to turbo-charge your progress.
Learn moreOn 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.
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.
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.
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.
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.
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.
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.