Spring Cloud 2022.0.0(代号 Kilburn)已发布

发行版 | Ryan Baxter | 2022年12月16日 | ...

我谨代表社区,高兴地宣布 Spring Cloud 2022.0 版本列车已正式发布(GA)。该版本可在 Maven Central 中找到。您可以查看 2022.0 的 发行说明以了解更多信息

2022.0.0 版本列车中的显著变化

Spring Cloud 2022.0.0 是一个主要版本,它基于 Spring Framework 6.x 和 Spring Boot 3.x 构建。这包括与 Jakarta EE 的兼容性,并需要 Java 17 基线。请查看 此处 以了解此版本中包含的问题。以下是所有 2022.0.0 里程碑、候选版本和 GA 版本的亮点。

Spring Cloud OpenFeign 功能完整公告

由于 Spring 现在提供了自己的接口 HTTP 客户端解决方案,从 2022.0.0 开始,我们将 Spring Cloud OpenFeign 视为功能完整。这意味着 Spring Cloud 团队将不再向该模块添加新功能。我们仍然会修复错误和安全问题,我们也会考虑并审查来自社区的小型拉取请求。

Spring Cloud Kubernetes

  • 已删除 `@ConditionalOnKubernetesEnabled` 的使用,转而使用 Spring Boot 中的 `@ConditionalOnCloudPlatform` (893)
  • 重构 configmaps 和 secrets 实现 (#917)
  • 使用 `spring.config.import` 加载 Config Maps 和 Secrets,无需使用 Bootstrap 上下文 (1002)
  • Secrets 和 Config Maps 支持前缀 (765)
  • 按命名空间过滤服务发现 (#1000)
  • KubernetesCatalogWatch 应支持命名空间 (#1158)
  • 升级到 Kubernetes Java 客户端 17 (#1168)
  • 更新到 fabric8 6.2.0 (#1165)
  • 对于 fabric8 catalog watcher 使用端点切片 (#1149)

Spring Cloud Function

  • 添加了对 AOT 和原生镜像的支持

Spring Cloud Circuit Breaker

  • 将 Resilience4J 升级到 2.0.2
  • 添加了在运行 Resilient4J 断路器时禁用线程池的支持 (147)

Spring Cloud Task

  • 了解 Spring Cloud Tasks 中的新增内容和更改 (发行说明)
  • 阅读有关如何从 Spring Cloud Task 2.x 迁移到 3.0 的更多信息 (迁移指南)

Spring Cloud Stream

  • 添加了对 AOT 和原生镜像的支持

Spring Cloud OpenFeign

  • 允许根据选定的 `ServiceInstance` 自定义负载均衡请求 (#735)
  • 添加了对目标 URL 刷新功能的支持 (#710)
  • 添加了对 LoadBalancer X-Forwarded Headers 的支持 (#748)
  • 默认情况下启用 Jackson 自动配置 (#476)
  • 删除了弃用项并根据 Feign 中的 API 更改进行了调整 (#768)
  • 删除了 Spring Cloud Commons HttpClient 接口的使用 (#788)
  • 已删除 Apache HttpClient 4,转而使用 Apache HttpClient 5 (#783)
  • 升级到 Feign `12.0` (#782)
  • 添加了对 AOT 和原生镜像的支持 (#794)
  • 添加了对 Micrometer Observation API 的支持 ([#793]https://github.com/spring-cloud/spring-cloud-openfeign/pull/793))
  • Feign 已升级到 Feign `12.1` (#792)
  • 添加了配置 `ResponseInterceptor` 的可能性 (#802)

Spring Cloud Commons

  • 添加注册生命周期监听器 (#999)

  • 阻塞式 LoadBalancer 客户端请求的请求数据上下文已提供给生命周期回调 (#1090)

  • OAuth 集成已从已弃用的 Spring Security OAuth 迁移到 Spring Security 中的 OAuth2 支持 (#1053)

  • 添加了对重试 LoadBalancer 特定异常的可能性

  • 添加注册生命周期监听器 (#999https://github.com/spring-cloud/spring-cloud-commons/issues/999)

  • 阻塞式 LoadBalancer 客户端请求的请求数据上下文已提供给生命周期回调 (#1090)

  • 添加了及早创建 LoadBalancer 子上下文的可能性 (#729)

  • 添加了基于权重的负载均衡 (#1063)

  • 在 AOT 和原生镜像支持中添加了对 LoadBalancer 子上下文的支持 (#1135)

  • 添加了对基于属性的基于权重的负载均衡配置的支持 (#1163)

  • 删除了依赖于 Apache HttpClient v4 的接口。删除了 OK HttpClient 接口,因为它们仅由 Spring Cloud OpenFeign 使用。Spring Cloud OpenFeign 现在直接使用 OK HttpClient (#1171)

  • 已删除弃用的类和接口。请参阅 Spring Cloud 2022 发行说明 中的重大更改

  • 切换到在 AOT 模式下延迟初始化子上下文 (#1176)

Spring Cloud Contract

Spring Cloud Netflix

  • 更新到 Eureka 2.0.0。Eureka 2.0.0 是一个新的 Eureka 分支,与七年前的 旧的 2.x-archive 实验无关。新的 2.x 分支是为了与 JakartaEE 兼容。这使得 Spring Cloud Netflix 可以与 Spring Framework 6.0 和 Spring Boot 3.0 兼容。
  • 将 Apache HttpClient 迁移到 Apache HC5 HttpClient (#4126)

Spring Cloud Consul

  • 添加了对 AOT 和原生镜像的支持

Spring Cloud Config

Spring Cloud Gateway

  • 添加了对 AOT 和原生镜像的支持
  • 添加了一个 LocalResponseCache 过滤器 (2759)
  • 添加了 micrometer Observability 支持 (2715)

以下模块已作为 2022.0.0 的一部分更新

模块 版本 问题
Spring Cloud Vault 4.0.0 (问题)
Spring Cloud Kubernetes 3.0.0 (问题)
Spring Cloud Function 4.0.0
Spring Cloud Zookeeper 4.0.0
Spring Cloud Circuitbreaker 3.0.0 (问题)
Spring Cloud Task 3.0.0
Spring Cloud Bus 4.0.0
Spring Cloud Stream 4.0.0
Spring Cloud Openfeign 4.0.0 (问题)
Spring Cloud Commons 4.0.0 (问题)
Spring Cloud Contract 4.0.0
Spring Cloud Starter Build 2022.0.0
Spring Cloud Netflix 4.0.0 (问题)
Spring Cloud Consul 4.0.0
Spring Cloud Config 4.0.0 (问题)
Spring Cloud Build 4.0.0
Spring Cloud Gateway 4.0.0 (问题)

一如既往,我们欢迎您在 GitHubGitterStack OverflowTwitter 上提供反馈。

使用包含 BOM 的 Maven 开始(仅依赖管理)

<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>

或使用 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}"
  }
}

获取 Spring 新闻通讯

关注 Spring 新闻通讯

订阅

领先一步

VMware 提供培训和认证,助您快速提升技能。

了解更多

获取支持

Tanzu Spring 提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一个简单的订阅即可。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部