Spring Cloud 2020.0.0
沒錯,Spring Cloud 2020.0.0 正式釋出了:
沒錯,從 Spring Cloud 2020.0.0-M1 開始,Spring Cloud 廢除了這種英國倫敦地鐵站的命名方式,從而使用了全新的 “日曆化” 版本命名方式。
具體變更的細節這裡不展開介紹了,我在好幾個月前就分享過了:
Spring Cloud 2020 版本重大變革,更好的命名方式!
為什麼這次 Spring Cloud 2020.0.0 版本趕在 2020 的最後幾天釋出,我只能說:
2020 時間真的已經不多了,再不釋出就只能叫:Spring Cloud 2021.0.0
所以,我猜吧,Spring Cloud 官方也不希望看到新搞出來的版本命名方式還沒釋出就又要改名了,畢竟 2020 日子不多了,最後一個星期了。。
技術更新太快了。。
Maven 中央倉庫已可用:
我們再來開啟上一個版本:Hoxton.SR9
看上面的黃色邊框提示,這個專案已經有了一個新的版本:2020.0.0,新的版本時代開啟了!
來吧,愉快地使用 Spring Cloud 吧!
最新 Maven 依賴管理方式:
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>2020.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 依賴管理方式:
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 TrainBoot Version2020.0.x aka Ilford2.4.xHoxton2.2.x, 2.3.x (Starting with SR5)Greenwich2.1.xFinchley2.0.xEdgware1.5.xDalston1.5.x
需要升級的小夥伴們看好了~
參考閱讀:Spring Boot 2.4 正式釋出,重大調整
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-archaiusspring-cloud-netflix-concurrency-limitsspring-cloud-netflix-corespring-cloud-netflix-dependenciesspring-cloud-netflix-hystrixspring-cloud-netflix-hystrix-contractspring-cloud-netflix-hystrix-dashboardspring-cloud-netflix-hystrix-streamspring-cloud-netflix-ribbonspring-cloud-netflix-sidecarspring-cloud-netflix-turbinespring-cloud-netflix-turbine-streamspring-cloud-netflix-zuulspring-cloud-starter-netflix-archaiusspring-cloud-starter-netflix-hystrixspring-cloud-starter-netflix-hystrix-dashboardspring-cloud-starter-netflix-ribbonspring-cloud-starter-netflix-turbinespring-cloud-starter-netflix-turbine-streamspring-cloud-starter-netflix-zuul2)移除了對 ribbon、hystrix 和 zuul 的支援
在已釋出的專案中已經移除了對 ribbon、hystrix 和 zuul 的支援。
查了下資料,發現 spring-cloud-loadbalancer 已經取代了 ribbon!
3)移除了 Spring Cloud Security 專案
4、Spring Cloud Commons注意:Bootstrap 已經被改為預設禁用狀態。
Config Client, Consul, Vault, 和 Zookeeper 增加了 Spring Boot 2.4 中的新的匯入配置的方式,即過 spring.config.import 引數匯入配置,具體使用的細節請看對應的文件。
參考閱讀:Spring Boot 2.4.0 配置檔案重大調整
如果你想回到老版本的 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 Kubernetes1)增加了基於 Kubernetes Java 客戶端的響應式客戶端發現實現;
2)增加了基於 Kubernetes Java 客戶端的 Spring Cloud Loadbalancer 實現;
7、Spring Cloud Openfeign1)支援在 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://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 Boot 的依賴版本升級到了 2.4,還有很多專案和模組的移除和變更,以及不再支援 Ribbion/ Hystrix/ Zuul,等等……
這些變更對於使用 Spring Cloud 的使用者來說,無疑增加了很多不確定性,增加了系統升級的成本和風險,維護升級真不是一件容易的事。
說話你們用了 Spring Cloud 什麼版本?
說實話,我已經更新不動了……