Spring Cloud 2024 正式釋出,王炸級更新!!

Java技术栈發表於2024-12-05

大家好,我是R哥。

2024 年都接近尾聲了,Spring Cloud 2024 正式版才剛剛釋出,真是姍姍來遲啊。

Spring Cloud 2024 從里程碑版本到正式版本,一共釋出了 4 次版本:

  • 2024.0.0
  • 2024.0.0-RC1
  • 2024.0.0-M2
  • 2024.0.0-M1

來看看最新的版本情況:

Spring Cloud 2024,代號:Moorgate,關於版本的命名、代號,釋出時間是不是很奇怪?

其實 Spring Cloud 最新的版本命名方式早已經變更了,以後就是 YEAR.x 這種命名方式了,不清楚的可以看下我之前寫的兩篇文章:

  • Spring Cloud 2020.0.0 正式釋出,全新顛覆性版本!
  • Spring Cloud 2020 版本重大變革,更好的命名方式!

比如我舉兩個例子:

Spring Cloud 2024.0.0 中的 2024 是指 Spring Cloud 2024.x 版本線,2023.0.0 則是指 2023 這個版本線的第 1 個版本,而不是指某個年份釋出的版本。

如果沒有意外,Spring Cloud 2025.x 將會在 2025 年 12 月份正式釋出,也一樣會經歷里程碑版本、候選版本,最後釋出正式版本,這需要一個週期。

新特性解讀

Spring Cloud 2024.0.0 是一個大版本,來看看更新了啥。

系統環境

Spring Cloud 2024.0.0 基於以下環境進行構建:

  • JDK 17+,最高支援 JDK 23
  • Spring Framework 6.2.0+
  • Spring Boot 3.4.0

所以,這也是 Spring Cloud 2024.0.0 的最低依賴要求,其實JDK 和 Spring 版本是跟 Spring Boot 版本走的,升級請小心相容性。

模組升級

Spring Cloud 2024.0.0 更新了以下核心模組:

模組 版本
Spring Cloud Vault 4.2.0
Spring Cloud Bus 4.2.0
Spring Cloud Task 3.2.0
Spring Cloud Zookeeper 4.2.0
Spring Cloud Kubernetes 3.2.0
Spring Cloud Function 4.2.0
Spring Cloud Commons 4.2.0
Spring Cloud Openfeign 4.2.0
Spring Cloud Circuitbreaker 3.2.0
Spring Cloud Starter Build 2024.0.0
Spring Cloud Stream 4.2.0
Spring Cloud Consul 4.2.0
Spring Cloud Gateway 4.2.0
Spring Cloud Contract 4.2.0
Spring Cloud Config 4.2.0
Spring Cloud Build 4.2.0
Spring Cloud Netflix 4.2.0

Spring Cloud CircuitBreaker

之前的版本有一個問題:

CircuitBreaker 例項只支援全域性禁用 TimeLimiter,或者必須定義一個自定義的長時間超時配置,即使例項不需要考慮超時問題,或者已經有超時配置,也需要使用該自定義配置。

Spring Cloud 2024.0.0 支援對所有 CircuitBreaker 例項,按組或例項級別禁用 TimeLimiter,可控制的顆粒度更小了。

Spring Cloud Config

更新內容如下:

  • 修復一個 S3 協議的後端儲存,對於多個應用程式名稱的行為有所不同的問題。
  • 支援在環境儲存庫中使用多標籤,伺服器端會處理多標籤,無需客戶端介入。
  • 支援使用給定的字符集儲存和接收資源。
  • 新增對 MongoDB 環境儲存庫支援。

Spring Cloud Gateway

更新內容如下:

  • 支援快取閘道器過濾器(filters),以避免在每一個請求中進行排序。
  • 支援在 HttpClientProperties 中配置 SslBundles 引數。
  • 支援 Netty 的 HTTP Client 連線池的 leasing 策略配置。
  • 支援在 MVC 伺服器中實現 ModifyResponseBody。
  • 使用了新的 Spring Boot HTTP 客戶端自動配置框架,配置更簡單方便了。
  • Webflux Java DSL 新增了一個巢狀布林謂詞的方法。
  • 支援向路由新增啟用標誌。
  • 在 Grafana 模板中新增了 QPS、延遲等指標。
  • 修復了與多個路由一起使用的同一個 redis rate limiter bucket。

Spring Cloud Kubernetes

更新內容如下:

  • 新增對配置觀察器(watcher)的支援,以關閉應用程式並重新整理應用程式。

Spring Cloud Netflix

更新內容如下:

  • 新增對 RestClient 的支援,併成為了 Netflix Eureka 的預設 HTTP 客戶端。

Spring Cloud Commons

更新內容如下:

  • 新增對負載平衡 RestTemplateBuilder 的支援。
  • 支援無需 KeyStore 就可以建立一個 TrustStore。

Spring Cloud Bus

更新內容如下:

  • 新增了一個關閉事件、端點,以及監聽器。

Spring Cloud OpenFeign

更新內容如下:

  • ignorecase 欄位新增到 Spring 分頁,以與 SortHandlerMethodArgumentResolverSupport::parseIgnoreCase 進行相容。

Spring Cloud Stream

更新內容如下:

  • 確保 BindingServiceProperties.bindings 的執行緒安全性。
  • 支援在 Supplier 中使用 PostProcessing 的能力。
  • 更改 DefaultBinderFactory 類的 getBinder 方法中 synchronized 的使用,以實現虛擬執行緒相容。

Spring Cloud 最新維護版本

Spring Cloud 支援的版本情況,以及對應的 Spring Boot、子模組版本如下表所示。

模組 * 2025.0 (Northfields)* 2024.0 (Moorgate) 2023.0 (Leyton) 2022.0 (Kilburn)
spring-boot 3.5.x 3.4.x 3.3.x/3.2.x 3.1.x/3.0.x
spring-cloud-bus 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-circuitbreaker 3.3.x 3.2.x 3.1.x 3.0.x
spring-cloud-commons 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-config 4.3.x 4.2.x 4.2.x 4.1.x
spring-cloud-consul 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-contract 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-function 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-gateway 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-kubernetes 3.3.x 3.2.x 3.1.x 3.0.x
spring-cloud-netflix 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-openfeign 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-stream 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-task 3.3.x 3.2.x 3.1.x 3.0.x
spring-cloud-vault 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-zookeeper 4.3.x 4.2.x 4.1.x 4.0.x

需要注意的是:

正常維護中的版本中有 Spring Cloud 2023+ 了,2022 及之前的版本已經徹底結束生命週期了,官方不再提供維護支援了,非必要,新專案儘量不要再使用了。

總結

Spring Cloud 2024.0.0 更新了不少功能啊,各個模組都得到了升級和加強,特別是對 Spring Cloud GatewaySpring Cloud Config 這兩個模組的更新非常大。

如果你問我有沒有必要升級最新版本,對於想嚐鮮的小夥伴是可以升級的,企業級生產專案就沒有必要升級了,也許還有一堆 bug 呢,提前瞭解下吧。

Maven 依賴給大家奉上:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>2024.0.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Spring Cloud 依賴管理採用的是 import 匯入方式,裡面管理了許多子模組依賴,統一引入管理,使用時只需要引入對應依賴的座標即可,不需要再指定子模組的版本號。

另外,學 Spring Cloud 必須先掌握 Spring Boot,如果你還沒用過 Spring Boot,今天我就送你一份 《Spring Boot 學習筆記》這個很全了,包括底層實現原理及程式碼實戰,非常齊全,助你快速打通 Spring Boot 的各個環節。

Spring Boot 理論和實戰原始碼倉庫:

https://github.com/javastacks/spring-boot-best-practice

你們用的哪個 Spring Cloud 版本呢?歡迎留言分享~

好了,今天的分享就到這裡了,後面我會更新更多好玩的 Java 技術文章和最新的技術資訊,關注公眾號Java技術棧第一時間推送,不要走開哦。

最後,打個小廣告,如果你想系統學習 Spring Cloud 微服務,可以報名R哥出品的《Spring Cloud 微服務實戰課程》,已支援全新的 Spring Cloud 2023 版本,一次訂閱,永久免費更新。

Spring Cloud 無疑是現在 Java 微服務事實上的標準,完全基於 Spring Boot 構建,依賴 Spring 生態體系,可以很好的與各種 Spring 生態專案無縫對接。

所以,不管是職場提升還是面試跳槽Spring Cloud 都是必備技能

版權宣告: 本文系公眾號 "Java技術棧" 原創,轉載、引用本文內容請註明出處,抄襲、洗稿一律投訴侵權,後果自負,並保留追究其法律責任的權利。

更多文章推薦:

1.Spring Boot 3.x 教程,太全了!

2.2,000+ 道 Java面試題及答案整理(2024最新版)

3.免費獲取 IDEA 啟用碼的 7 種方式(2024最新版)

覺得不錯,別忘了隨手點贊+轉發哦!

相關文章