Spring Cloud 2022 發(fā)布,這幾個(gè)組件要移除了!
繼SpringBoot 3.0和SpringFramework 6.0之后,Spring Cloud 終于也推出了新版本——2022.0.0,官網(wǎng)把這個(gè)版本命名為Kilburn。
目前在Maven倉庫中已經(jīng)可以下載使用了,通過POM文件即可依賴到項(xiàng)目中:
最低依賴
?Spring Cloud 2022.0.0是構(gòu)建在Spring Framework 6.0和Spring Boot 3.0 之上的一個(gè)主要版本。所以,他對(duì)JDK要求同樣是最低需要是Java 17,對(duì)J2EE的要求最低需要Jakarta EE 9。
組件升級(jí)
Spring Cloud 2022.0.0中的組件版本如下:
移除CLI和Cloudfoundry
?本次升級(jí)中,移除了Spring Cloud CLI 和 Spring Cloud Cloudfoundry 這兩個(gè)模塊。
Spring Boot CLI是一個(gè)命令行工具,用于使用Spring快速開發(fā)。它允許運(yùn)行Groovy腳本,Groovy腳本類似于沒有任何樣板代碼的java代碼。Spring CLI有助于引導(dǎo)新項(xiàng)目或編寫自定義命令。
Spring Cloud for Cloudfoundry可以輕松地在Cloud Foundry 中運(yùn)行Spring Cloud應(yīng)用程序。Cloud Foundry具有“服務(wù)”的概念,即“綁定”到應(yīng)用程序的中間件,實(shí)質(zhì)上為其提供包含憑據(jù)的環(huán)境變量。?
增加對(duì)AOT和Native支持
在《SpringBoot 3.0正式發(fā)布,有這幾個(gè)新變化!》我們介紹過,Spring Boot 3.0 中兩個(gè)重要的升級(jí)就是開始支持AOT編譯和引入了Spring Native。
在本次升級(jí)的SpringCloud 2.0.0中,多個(gè)組件也都增加了對(duì)AOT和Native的支持,如Spring Cloud Function、Spring Cloud Stream、Spring Cloud OpenFeign、Spring Cloud Commons、Spring Cloud Consul以及Spring Cloud Gateway等。
其中有多個(gè)組件的本次升級(jí),主要做的也是 “Added support for AOT & native”!
OpenFeign不再添加新功能
由于Spring現(xiàn)在提供了自己的接口HTTP客戶端解決方案,從2022.0.0開始,Spring Cloud OpenFeign將被視為功能完整。這意味著Spring Cloud團(tuán)隊(duì)將不再向模塊添加新特性。只會(huì)修復(fù)bug和安全問題。
在2022.0.0中,對(duì)OpenFeign也做了一些優(yōu)化和升級(jí):
- OAuth2的支持遷移到Spring Security OAuth2客戶端
- feign.autoconfiguration.jackson.enabled 默認(rèn)值修改為true
- Jackson Autoconfiguration默認(rèn)設(shè)置為開啟
- 移除了之前被廢棄的構(gòu)造函數(shù)和方法
- 為了與Spring Framework中的變化保持一致,已經(jīng)刪除了對(duì)Apache HttpClient 4的支持,將使用Apache HttpClient 5替代。
- 增加了對(duì)AOT和原生鏡像的支持,因?yàn)锳OT編譯和Spring Native是Spring Framework 6.0中的重要升級(jí)。
- 升級(jí)到 Feign 12.0
也許在下一個(gè)重要版本中,Spring Cloud OpenFeign可能也要被移除了。
Netflix升級(jí)Eureka 2.0.0
Eureka更新到 2.0.0,Eureka 2.0.0 是 Eureka 的一個(gè)新分支,與 7 年前的舊 2.x-archive 分支實(shí)驗(yàn)無關(guān)。新的 2.x 分支是為了與 JakartaEE 兼容,這也使得 Spring Cloud Netflix 與 Spring Framework 6.0 和 Spring Boot 3.0 兼容。
同時(shí),本次版本升級(jí)還遷移Apache HttpClient到Apache HC5 HttpClient。
總結(jié)
以上,主要幫大家整理了新發(fā)布的Spring Cloud 2022.0.0的新特性,其實(shí)可以看到,主要做的是對(duì)Spring Framework 6.0和SpringBoot 3.0的兼容。
在編寫這篇文章的時(shí)候,我特意去看了一下Spring Cloud Alibaba,Spring Cloud AWS,Spring Cloud Tencent 等項(xiàng)目的是否也隨?之進(jìn)行了更新。
結(jié)果發(fā)現(xiàn)Spring Cloud Alibaba和Spring Cloud AWS已經(jīng)做了相關(guān)更新,在文檔中有了相關(guān)說明。?
圖:Spring Cloud Alibaba 的README
PS:不過我發(fā)現(xiàn)個(gè)筆誤:英文版的readme中把Spring Cloud 2022寫成了Spring 2022,中文版readme的則是正確的。
圖:Spring Cloud AWS 的README
那么問題來了,Spring新版本對(duì)JDK的最低版本要求是Java 17,那么,你準(zhǔn)備升級(jí)嗎?
參考資料:
https://spring.io/projects/spring-cloud?。
https://github.com/awspring/spring-cloud-aws?。
https://github.com/alibaba/spring-cloud-alibaba?。