Spring Cloud 2022.0.0 (代号 Kilburn) 已发布

发布 | Ryan Baxter | 2022年12月16日 | ...

我代表社区高兴地宣布,Spring Cloud 2022.0 发布列的正式发布 (RELEASE) 版本现已可用。该版本可在 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 团队将不再向该模块添加新功能。我们仍会修复 Bug 和安全问题,并考虑和审查来自社区的小型拉取请求。

Spring Cloud Kubernetes

  • 移除了对 @ConditionalOnKubernetesEnabled 的使用,转而使用 Spring Boot 的 @ConditionalOnCloudPlatform (893)
  • 重构 configmaps 和 secrets 的实现 (#917)
  • 使用 spring.config.import 加载 Config Maps 和 Secrets,从而不再需要使用 Bootstrap context (1002)
  • Secrets 和 Config Maps 支持前缀 (765)
  • 按命名空间过滤服务发现 (#1000)
  • KubernetesCatalogWatch 应该支持命名空间 (#1158)
  • 升级到 Kubernetes Java Client 17 (#1168)
  • 更新到 fabric8 6.2.0 (#1165)
  • 为 fabric8 catalog watcher 使用 endpoint slice (#1149)

Spring Cloud Function

  • 添加了对 AOT & 原生的支持

Spring Cloud Circuitbreaker

  • 将 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 Header 的支持 (#748)
  • 将 Jackson Autoconfiguration 默认设置为启用 (#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 的一个新分支,与 7 年前的旧 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 社区所有即将举行的活动。

查看全部