Get ahead
VMware offers training and certification to turbo-charge your progress.
Learn moreOn behalf of the community, I am pleased to announce that the General Availability (RELEASE) of the Spring Cloud 2022.0 Release Train is available today. The release can be found in Maven Central. You can check out the 2022.0 release notes for more information.
Spring Cloud 2022.0.0 is a major release that builds upon Spring Framework 6.x and Spring Boot 3.x. This includes compatibility with Jakarta EE and requires a Java 17 baseline. See here for the issues included in this release. Below are highlights from all of the 2022.0.0 milestone, release candidate and GA releases.
Since Spring now provides its own interface HTTP clients solution, starting with 2022.0.0, we're going to treat Spring Cloud OpenFeign as feature complete. This means that the Spring Cloud team will no longer be adding new features to the module. We will still fix bugs and security issues, and we will also consider and review small pull requests from the community.
@ConditionalOnKubernetesEnabled
in favor of @ConditionalOnCloudPlatform
from Spring Boot (893)spring.config.import
removing the need to use Bootstrap context (1002)ServiceInstance
(#735)12.0
(#782)12.1
(#792)ResponseInterceptor
(#802)Adds registration lifecycle listeners (#999)
Request data context for blocking LoadBalancer client requests has been made available to lifecycle callbacks (#1090)
The OAuth integration has been migrated from the deprecated Spring Security OAuth to OAuth2 support in Spring Security (#1053)
Added possibility to retry on specific exceptions for the LoadBalancer
Adds registration lifecycle listeners (#999https://github.com/spring-cloud/spring-cloud-commons/issues/999)
Request data context for blocking LoadBalancer client requests has been made available to lifecycle callbacks (#1090)
Added the possibility to eagerly create LoadBalancer child contexts (#729)
Added Weight-based load-balancing (#1063)
Added support for LoadBalancer child contexts in AOT and native image support (#1135)
Support added for property-based configuration for weighted load-balancing (#1163)
Removed Interfaces relying on Apache HttpClient v4. Removed OK HttpClient interfaces as they were only used by Spring Cloud OpenFeign. Spring Cloud OpenFeign now uses the OK HttpClient directly (#1171)
Deprecated classes and interfaces have been removed. See breaking changes in the Spring Cloud 2022 Release Notes
Switched to lazily initializing child contexts in AOT mode (#1176)
src/test/resources/contracts
checking (#1848)LocalResponseCache
filter (2759)Observability
support (2715)The following modules were updated as part of 2022.0.0:
Module | Version | Issues |
---|---|---|
Spring Cloud Vault | 4.0.0 | (issues) |
Spring Cloud Kubernetes | 3.0.0 | (issues) |
Spring Cloud Function | 4.0.0 | |
Spring Cloud Zookeeper | 4.0.0 | |
Spring Cloud Circuitbreaker | 3.0.0 | (issues) |
Spring Cloud Task | 3.0.0 | |
Spring Cloud Bus | 4.0.0 | |
Spring Cloud Stream | 4.0.0 | |
Spring Cloud Openfeign | 4.0.0 | (issues) |
Spring Cloud Commons | 4.0.0 | (issues) |
Spring Cloud Contract | 4.0.0 | |
Spring Cloud Starter Build | 2022.0.0 | |
Spring Cloud Netflix | 4.0.0 | (issues) |
Spring Cloud Consul | 4.0.0 | |
Spring Cloud Config | 4.0.0 | (issues) |
Spring Cloud Build | 4.0.0 | |
Spring Cloud Gateway | 4.0.0 | (issues) |
As always, we welcome feedback on GitHub, on Gitter, on Stack Overflow, or on Twitter.
To get started with Maven with a BOM (dependency management only):
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2022.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
...
</dependencies>
or with Gradle:
plugins {
id 'java'
id 'org.springframework.boot' version '3.0.0'
id 'io.spring.dependency-management' version '1.1.0'
}
repositories {
mavenCentral()
}
ext {
set('springCloudVersion', "2022.0.0")
}
dependencies {
implementation 'org.springframework.cloud:spring-cloud-starter-config'
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}