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 團隊將不再向該模組添加新功能。 我們仍將修復錯誤和安全性問題,並且我們也會考慮和審查社群的小型提取請求。

Spring Cloud Kubernetes

  • 移除對 @ConditionalOnKubernetesEnabled 的使用,改用 Spring Boot 中的 @ConditionalOnCloudPlatform (893)
  • 重構組態檔和密鑰實作 (#917)
  • 使用 spring.config.import 載入組態檔和密鑰,無需使用 Bootstrap 內容 (1002)
  • 密鑰和組態檔支援前綴 (765)
  • 按命名空間篩選服務探索 (#1000)
  • KubernetesCatalogWatch 應支援命名空間 (#1158)
  • 升級到 Kubernetes Java Client 17 (#1168)
  • 更新到 fabric8 6.2.0 (#1165)
  • 將端點切片用於 fabric8 目錄觀察器 (#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 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 子 Context 的可能性 (#729)

  • 新增了基於權重的負載平衡 (#1063)

  • 新增了 AOT 和原生映像檔支援中對 LoadBalancer 子 Context 的支援 (#1135)

  • 新增了對基於屬性配置的權重負載平衡的支援 (#1163)

  • 移除了依賴 Apache HttpClient v4 的介面。移除了 OK HttpClient 介面,因為它們僅由 Spring Cloud OpenFeign 使用。Spring Cloud OpenFeign 現在直接使用 OK HttpClient (#1171)

  • 已移除棄用的類別和介面。請參閱 Spring Cloud 2022 發布說明中的重大變更

  • 切換為在 AOT 模式下延遲初始化子 Context (#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 社群中所有即將舉行的活動。

查看全部