Spring Cloud 2020.0.0 正式發(fā)布,全新顛覆性版本!

Java技術(shù)棧
www.javastack.cn
關(guān)注閱讀更多優(yōu)質(zhì)文章
Spring Cloud 2020.0.0
沒(méi)錯(cuò),Spring Cloud 2020.0.0 正式發(fā)布了:

感謝Java技術(shù)棧群友通知,想入群的在公眾號(hào)Java技術(shù)棧后臺(tái)回復(fù):wx,正在使用 Spring Cloud 的同學(xué)有沒(méi)有覺(jué)得奇怪,用的好好的英國(guó)倫敦地鐵站,版本號(hào)怎么突然變成 2020.0.0 了?
沒(méi)錯(cuò),從 Spring Cloud 2020.0.0-M1 開(kāi)始,Spring Cloud 廢除了這種英國(guó)倫敦地鐵站的命名方式,從而使用了全新的 "日歷化" 版本命名方式。
具體變更的細(xì)節(jié)這里不展開(kāi)介紹了,我在好幾個(gè)月前就分享過(guò)了:
Spring Cloud 2020 版本重大變革,更好的命名方式!
為什么這次 Spring Cloud 2020.0.0 版本趕在 2020 的最后幾天發(fā)布,我只能說(shuō):
2020 時(shí)間真的已經(jīng)不多了,再不發(fā)布就只能叫:Spring Cloud 2021.0.0
所以,我猜吧,Spring Cloud 官方也不希望看到新搞出來(lái)的版本命名方式還沒(méi)發(fā)布就又要改名了,畢竟 2020 日子不多了,最后一個(gè)星期了。。
技術(shù)更新太快了。。
Maven 中央倉(cāng)庫(kù)已可用:

我們?cè)賮?lái)打開(kāi)上一個(gè)版本:Hoxton.SR9

看上面的黃色邊框提示,這個(gè)項(xiàng)目已經(jīng)有了一個(gè)新的版本:2020.0.0,新的版本時(shí)代開(kāi)啟了!
來(lái)吧,愉快地使用 Spring Cloud 吧!
最新 Maven 依賴(lài)管理方式:
????
????????
????????????org.springframework.cloud
????????????spring-cloud-dependencies
????????????2020.0.0
????????????<type>pomtype>
????????????import
????????
????
????
????????org.springframework.cloud
????????spring-cloud-starter-config
????
????
????????org.springframework.cloud
????????spring-cloud-starter-netflix-eureka-client
????
????...
最新 Gradle 依賴(lài)管理方式:
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 版本重要變更
下面棧長(zhǎng)對(duì) Spring Cloud 2020.0.0 版本發(fā)布說(shuō)明作一個(gè)簡(jiǎn)單總結(jié),以幫助你確定是否升級(jí)。
1、Spring Boot 依賴(lài)版本
這個(gè)版本需要依賴(lài) Spring Boot 2.4.1,最新的依賴(lài)關(guān)系如下:
| 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 |
需要升級(jí)的小伙伴們看好了~
參考閱讀:Spring Boot 2.4 正式發(fā)布,重大調(diào)整
Spring Boot 基礎(chǔ)教程看這里:
https://github.com/javastacks/spring-boot-best-practice
2、修復(fù)大量 bug
正常維護(hù),這個(gè)版本修復(fù)了大量的 bug。
參考:
https://github.com/spring-cloud/spring-cloud-release/wiki/Spring-Cloud-2020.0-Release-Notes#known-issues
3、項(xiàng)目、模塊移除
1)spring-cloud-netflix 模塊移除
下面的模塊已經(jīng)從 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)移除了對(duì) ribbon、hystrix 和 zuul 的支持
在已發(fā)布的項(xiàng)目中已經(jīng)移除了對(duì) ribbon、hystrix 和 zuul 的支持。
hystrix 和 zuul 已經(jīng)被廢除,之前我有在公眾號(hào)Java技術(shù)棧分享過(guò),但是,ribbon 怎么都移除了??
查了下資料,發(fā)現(xiàn) spring-cloud-loadbalancer 已經(jīng)取代了 ribbon!
3)移除了 Spring Cloud Security 項(xiàng)目
Spring Cloud Security 這個(gè)項(xiàng)目刪除了,其代碼已經(jīng)移到了 Spring Cloud 各個(gè)子項(xiàng)目中了。
4、Spring Cloud Commons
注意:Bootstrap 已經(jīng)被改為默認(rèn)禁用狀態(tài)。
Config Client, Consul, Vault, 和 Zookeeper 增加了 Spring Boot 2.4 中的新的導(dǎo)入配置的方式,即過(guò) ?spring.config.import 參數(shù)導(dǎo)入配置,具體使用的細(xì)節(jié)請(qǐng)看對(duì)應(yīng)的文檔。
參考閱讀:Spring Boot 2.4.0 配置文件重大調(diào)整
如果你想回到老版本的 bootstrap 功能,可以通過(guò)兩種方式開(kāi)啟它:
1)通過(guò)參數(shù)開(kāi)啟
spring.cloud.bootstrap.enabled=true
或者:
spring.config.use-legacy-processing=true
這個(gè)參數(shù)需要設(shè)置在環(huán)境變量或者系統(tǒng)級(jí)參數(shù),或者命令行參數(shù)。
2)通過(guò)添加依賴(lài)開(kāi)啟
添加這個(gè)依賴(lài):
org.springframework.cloud:spring-cloud-starter-bootstrap
增加了 Spring Cloud LoadBalancer 服務(wù)器統(tǒng)計(jì)功能; 通常的安全功能已從現(xiàn)已終止的 Spring Cloud Security 項(xiàng)目移至此處; 增加了使用 spring.config.import 進(jìn)行解密的支持;
5、Spring Cloud Contract
記錄了如何在 Windows 上克隆項(xiàng)目。
6、Spring Cloud Kubernetes
1)增加了基于 Kubernetes Java 客戶(hù)端的響應(yīng)式客戶(hù)端發(fā)現(xiàn)實(shí)現(xiàn);
2)增加了基于 Kubernetes Java 客戶(hù)端的 Spring Cloud Loadbalancer 實(shí)現(xiàn);
7、Spring Cloud Openfeign
1)支持在 Spring Cloud CircuitBreakers 中包裝 feign 客戶(hù)端;
2)Spring Cloud OpenFeign 安全部分的代碼,從 Spring Cloud Security 移到了 Spring Cloud OpenFeign;
3)增加了 LoadBalancer 統(tǒng)計(jì)功能;
8、Spring Cloud Gateway
增加了 LoadBalancer 統(tǒng)計(jì)功能。
9、Spring Cloud Netflix
1)移除了若干模塊,見(jiàn)上面的第3點(diǎn)說(shuō)明;
2)基于 Eureka Client 的 RestTemplate 已支持 TLS 屬性;
10、Spring Cloud Task
1)增加了有關(guān)單步批處理作業(yè)的文檔;
以下模塊作為 2020.0.0 的一部分進(jìn)行了更新:

總結(jié)
好了,本次的版本說(shuō)明就總結(jié)到這里了,更多的細(xì)節(jié)請(qǐng)參考下面發(fā)布說(shuō)明:
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
另外,想學(xué)習(xí)更多的 Spring Cloud 教程,請(qǐng)關(guān)注公眾號(hào)Java技術(shù)棧,在后臺(tái)回復(fù):cloud,歷史 Spring Cloud 的教程我都整理好了,都是干貨。
個(gè)人感覺(jué)這次的版本更新還是挺大的,包括 Spring Boot 的依賴(lài)版本升級(jí)到了 2.4,還有很多項(xiàng)目和模塊的移除和變更,以及不再支持 Ribbion/ Hystrix/ Zuul,等等……
這些變更對(duì)于使用 Spring Cloud 的用戶(hù)來(lái)說(shuō),無(wú)疑增加了很多不確定性,增加了系統(tǒng)升級(jí)的成本和風(fēng)險(xiǎn),維護(hù)升級(jí)真不是一件容易的事。
說(shuō)話(huà)你們用了 Spring Cloud 什么版本?
說(shuō)實(shí)話(huà),我已經(jīng)更新不動(dòng)了……
版權(quán)申明:本文系公眾號(hào) "Java技術(shù)棧" 原創(chuàng),原創(chuàng)實(shí)屬不易,轉(zhuǎn)載、引用本文內(nèi)容請(qǐng)注明出處,禁止抄襲、洗稿,請(qǐng)自重,尊重他人勞動(dòng)成果和知識(shí)產(chǎn)權(quán)。






關(guān)注Java技術(shù)棧看更多干貨


