天天看點

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

感謝Java技術棧群友通知,想入群的在公衆号Java技術棧背景回複:wx,正在使用 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 中央倉庫已可用:

Spring Cloud 2020.0.0 正式釋出,全新颠覆性版本!
我們再來打開上一個版本:Hoxton.SR9
Spring Cloud 2020.0.0 正式釋出,全新颠覆性版本!

看上面的黃色邊框提示,這個項目已經有了一個新的版本: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,最新的依賴關系如下:

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

需要更新的小夥伴們看好了~

參考閱讀: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-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 配置檔案重大調整

如果你想回到老版本的 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 的一部分進行了更新:

Spring Cloud 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 Cloud 教程,請關注公衆号Java技術棧,在背景回複:cloud,曆史 Spring Cloud 的教程我都整理好了,都是幹貨。

個人感覺這次的版本更新還是挺大的,包括 Spring Boot 的依賴版本更新到了 2.4,還有很多項目和子產品的移除和變更,以及不再支援 Ribbion/ Hystrix/ Zuul,等等……

這些變更對于使用 Spring Cloud 的使用者來說,無疑增加了很多不确定性,增加了系統更新的成本和風險,維護更新真不是一件容易的事。

說話你們用了 Spring Cloud 什麼版本?

說實話,我已經更新不動了……

版權申明:本文系公衆号 "Java技術棧" 原創,原創實屬不易,轉載、引用本文内容請注明出處,禁止抄襲、洗稿,請自重,尊重他人勞動成果和知識産權。