1. 程式人生 > >Spring Cloud 2020.0.0 正式釋出,全新顛覆性版本!

Spring Cloud 2020.0.0 正式釋出,全新顛覆性版本!

## Spring Cloud 2020.0.0 沒錯,Spring Cloud 2020.0.0 正式釋出了: ![](https://img2020.cnblogs.com/other/1218593/202012/1218593-20201224134730819-1289478507.png) 感謝Java技術棧群友通知,想入群的在公眾號Java技術棧後臺回覆:wx,正在使用 Spring Cloud 的同學有沒有覺得奇怪,用的好好的英國倫敦地鐵站,版本號怎麼突然變成 2020.0.0 了? 沒錯,從 Spring Cloud 2020.0.0-M1 開始,Spring Cloud 廢除了這種英國倫敦地鐵站的命名方式,從而使用了全新的 "日曆化" 版本命名方式。 具體變更的細節這裡不展開介紹了,我在好幾個月前就分享過了: [Spring Cloud 2020 版本重大變革,更好的命名方式!](https://mp.weixin.qq.com/s/iHCx8D41sDWODJob0vfPeA) 為什麼這次 Spring Cloud 2020.0.0 版本趕在 2020 的最後幾天釋出,我只能說: > 2020 時間真的已經不多了,再不釋出就只能叫:Spring Cloud 2021.0.0 所以,我猜吧,Spring Cloud 官方也不希望看到新搞出來的版本命名方式還沒釋出就又要改名了,畢竟 2020 日子不多了,最後一個星期了。。 技術更新太快了。。 Maven 中央倉庫已可用: ![](https://img2020.cnblogs.com/other/1218593/202012/1218593-20201224134731222-698183968.png) 我們再來開啟上一個版本:**Hoxton.SR9** ![](https://img2020.cnblogs.com/other/1218593/202012/1218593-20201224134731604-1554587908.png) 看上面的黃色邊框提示,這個專案已經有了一個新的版本:**2020.0.0**,新的版本時代開啟了! 來吧,愉快地使用 Spring Cloud 吧! **最新 Maven 依賴管理方式:** ``` ``` **最新 Gradle 依賴管理方式:** ``` buildscript { dependencies { classpath "io.spring.gradle:dependency-management-plugin:1.0.10.RELEASE" } } apply plugin: "io.spring.dependency-management" dependencyManagement { imports { mavenBom 'org.springframework.cloud:spring-cloud-dependencies:2020.0.0' } } dependencies { compile 'org.springframework.cloud:spring-cloud-starter-config' compile 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client' //... } ``` ## 2020 版本重要變更 下面棧長對 Spring Cloud 2020.0.0 版本釋出說明作一個簡單總結,以幫助你確定是否升級。 #### 1、Spring Boot 依賴版本 這個版本需要依賴 Spring Boot 2.4.1,最新的依賴關係如下: | Release Train | Boot Version | | :------------------ | :------------------------------- | | 2020.0.x aka Ilford | 2.4.x | | Hoxton | 2.2.x, 2.3.x (Starting with SR5) | | Greenwich | 2.1.x | | Finchley | 2.0.x | | Edgware | 1.5.x | | Dalston | 1.5.x | 需要升級的小夥伴們看好了~ 參考閱讀:[Spring Boot 2.4 正式釋出,重大調整](https://mp.weixin.qq.com/s/Fff2EsSxraefIUJ8HpQXFg) Spring Boot 基礎教程看這裡: > https://github.com/javastacks/spring-boot-best-practice #### 2、修復大量 bug 正常維護,這個版本修復了大量的 bug。 參考: > https://github.com/spring-cloud/spring-cloud-release/wiki/Spring-Cloud-2020.0-Release-Notes#known-issues #### 3、專案、模組移除 **1)spring-cloud-netflix 模組移除** 下面的模組已經從 spring-cloud-netflix 中移除了: - spring-cloud-netflix-archaius - spring-cloud-netflix-concurrency-limits - spring-cloud-netflix-core - spring-cloud-netflix-dependencies - spring-cloud-netflix-hystrix - spring-cloud-netflix-hystrix-contract - spring-cloud-netflix-hystrix-dashboard - spring-cloud-netflix-hystrix-stream - spring-cloud-netflix-ribbon - spring-cloud-netflix-sidecar - spring-cloud-netflix-turbine - spring-cloud-netflix-turbine-stream - spring-cloud-netflix-zuul - spring-cloud-starter-netflix-archaius - spring-cloud-starter-netflix-hystrix - spring-cloud-starter-netflix-hystrix-dashboard - spring-cloud-starter-netflix-ribbon - spring-cloud-starter-netflix-turbine - spring-cloud-starter-netflix-turbine-stream - spring-cloud-starter-netflix-zuul **2)移除了對 ribbon、hystrix 和 zuul 的支援** 在已釋出的專案中已經移除了對 ribbon、hystrix 和 zuul 的支援。 hystrix 和 zuul 已經被廢除,之前我有在公眾號Java技術棧分享過,但是,ribbon 怎麼都移除了?? 查了下資料,發現 `spring-cloud-loadbalancer` 已經取代了 ribbon! **3)移除了 Spring Cloud Security 專案** Spring Cloud Security 這個專案刪除了,其程式碼已經移到了 Spring Cloud 各個子專案中了。 #### 4、Spring Cloud Commons 注意:Bootstrap 已經被改為預設禁用狀態。 Config Client, Consul, Vault, 和 Zookeeper 增加了 Spring Boot 2.4 中的新的匯入配置的方式,即過 `spring.config.import` 引數匯入配置,具體使用的細節請看對應的文件。 參考閱讀:[Spring Boot 2.4.0 配置檔案重大調整](https://mp.weixin.qq.com/s/c2XRzUiblQQY6d_GGcIieg) 如果你想回到老版本的 bootstrap 功能,可以通過兩種方式開啟它: **1)通過引數開啟** > spring.cloud.bootstrap.enabled=true 或者: > spring.config.use-legacy-processing=true 這個引數需要設定在環境變數或者系統級引數,或者命令列引數。 **2)通過新增依賴開啟** 新增這個依賴: > org.springframework.cloud:spring-cloud-starter-bootstrap - 增加了 Spring Cloud LoadBalancer 伺服器統計功能; - 通常的安全功能已從現已終止的 Spring Cloud Security 專案移至此處; - 增加了使用 spring.config.import 進行解密的支援; #### 5、Spring Cloud Contract 記錄瞭如何在 Windows 上克隆專案。 #### 6、Spring Cloud Kubernetes 1)增加了基於 Kubernetes Java 客戶端的響應式客戶端發現實現; 2)增加了基於 Kubernetes Java 客戶端的 Spring Cloud Loadbalancer 實現; #### 7、Spring Cloud Openfeign 1)支援在 Spring Cloud CircuitBreakers 中包裝 feign 客戶端; 2)Spring Cloud OpenFeign 安全部分的程式碼,從 Spring Cloud Security 移到了 Spring Cloud OpenFeign; 3)增加了 LoadBalancer 統計功能; #### 8、Spring Cloud Gateway 增加了 LoadBalancer 統計功能。 **9、Spring Cloud Netflix** 1)移除了若干模組,見上面的第3點說明; 2)基於 Eureka Client 的 RestTemplate 已支援 TLS 屬性; **10、Spring Cloud Task** 1)增加了有關單步批處理作業的文件; 以下模組作為 2020.0.0 的一部分進行了更新: ![](https://img2020.cnblogs.com/other/1218593/202012/1218593-20201224134732029-841279546.png) ## 總結 好了,本次的版本說明就總結到這裡了,更多的細節請參考下面釋出說明: > https://spring.io/blog/2020/12/22/spring-cloud-2020-0-0-aka-ilford-is-available\ > https://github.com/spring-cloud/spring-cloud-release/wiki/Spring-Cloud-2020.0-Release-Notes 另外,想學習更多的 Spring Cloud 教程,請關注公眾號Java技術棧,在後臺回覆:cloud,歷史 Spring Cloud 的教程我都整理好了,都是乾貨。 個人感覺這次的版本更新還是挺大的,包括 Spring Boot 的依賴版本升級到了 2.4,還有很多專案和模組的移除和變更,以及不再支援 Ribbion/ Hystrix/ Zuul,等等…… 這些變更對於使用 Spring Cloud 的使用者來說,無疑增加了很多不確定性,增加了系統升級的成本和風險,維護升級真不是一件容易的事。 說話你們用了 Spring Cloud 什麼版本? 說實話,我已經更新不動了…… > 版權申明:本文系公眾號 "Java技術棧" 原創,原創實屬不易,轉載、引用本文內容請註明出處,禁止抄襲、洗稿,請自重,尊重他人勞動成果和智慧財產權。 **近期熱文推薦:** 1.[Java 15 正式釋出, 14 個新特性,重新整理你的認知!!](http://www.javastack.cn/article/2020/java15-released/) 2.[終於靠開源專案弄到 IntelliJ IDEA 啟用碼了,真香!](http://www.javastack.cn/article/2020/intellij-idea-by-open-source-project/) 3.[我用 Java 8 寫了一段邏輯,同事直呼看不懂,你試試看。。](http://www.javastack.cn/article/2020/java-8-optional-map-do-you-know/) 4.[吊打 Tomcat ,Undertow 效能很炸!!](http://www.javastack.cn/article/2020/undertow-introduce-with-spring-boot/) 5.[《Java開發手冊(嵩山版)》最新發布,速速下載!](http://www.javastack.cn/article/2020/alibaba-release-java-develop-rules-songshan/) 覺得不錯,別忘了隨手點贊+轉