继SpringBoot 3.0和SpringFramework 6.0之后,Spring Cloud 终于也推出了新版本——2022.0.0,官网把这个版本命名为Kilburn。
目前在Maven仓库中已经可以下载使用了,通过POM文件即可依赖到项目中:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2022.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
最低依赖
Spring Cloud 2022.0.0是构建在Spring Framework 6.0和Spring Boot 3.0 之上的一个主要版本。所以,他对JDK要求同样是最低需要是Java 17,对J2EE的要求最低需要Jakarta EE 9。
组件升级
Spring Cloud 2022.0.0中的组件版本如下:
移除CLI和Cloudfoundry
本次升级中,移除了Spring Cloud CLI 和 Spring Cloud Cloudfoundry 这两个模块。
Spring Boot CLI是一个命令行工具,用于使用Spring快速开发。它允许运行Groovy脚本,Groovy脚本类似于没有任何样板代码的java代码。Spring CLI有助于引导新项目或编写自定义命令。
Spring Cloud for Cloudfoundry可以轻松地在Cloud Foundry 中运行Spring Cloud应用程序。Cloud Foundry具有“服务”的概念,即“绑定”到应用程序的中间件,实质上为其提供包含凭据的环境变量。
增加对AOT和Native支持
在《SpringBoot 3.0正式发布,有这几个新变化!》我们介绍过,Spring Boot 3.0 中两个重要的升级就是开始支持AOT编译和引入了Spring Native。
在本次升级的SpringCloud 2.0.0中,多个组件也都增加了对AOT和Native的支持,如Spring Cloud Function、Spring Cloud Stream、Spring Cloud OpenFeign、Spring Cloud Commons、Spring Cloud Consul以及Spring Cloud Gateway等。
其中有多个组件的本次升级,主要做的也是 “Added support for AOT & native”!
OpenFeign不再添加新功能
由于Spring现在提供了自己的接口HTTP客户端解决方案,从2022.0.0开始,Spring Cloud OpenFeign将被视为功能完整。这意味着Spring Cloud团队将不再向模块添加新特性。只会修复bug和安全问题。
在2022.0.0中,对OpenFeign也做了一些优化和升级:
-
OAuth2的支持迁移到Spring Security OAuth2客户端
-
feign.autoconfiguration.jackson.enabled 默认值修改为true
-
Jackson Autoconfiguration默认设置为开启
-
移除了之前被废弃的构造函数和方法
-
为了与Spring Framework中的变化保持一致,已经删除了对Apache HttpClient 4的支持,将使用Apache HttpClient 5替代。
-
增加了对AOT和原生镜像的支持,因为AOT编译和Spring Native是Spring Framework 6.0中的重要升级。
-
升级到 Feign 12.0
也许在下一个重要版本中,Spring Cloud OpenFeign可能也要被移除了。
Netflix升级Eureka 2.0.0
Eureka更新到 2.0.0,Eureka 2.0.0 是 Eureka 的一个新分支,与 7 年前的旧 2.x-archive 分支实验无关。新的 2.x 分支是为了与 JakartaEE 兼容,这也使得 Spring Cloud Netflix 与 Spring Framework 6.0 和 Spring Boot 3.0 兼容。
同时,本次版本升级还迁移Apache HttpClient到Apache HC5 HttpClient。
总结
以上,主要帮大家整理了新发布的Spring Cloud 2022.0.0的新特性,其实可以看到,主要做的是对Spring Framework 6.0和SpringBoot 3.0的兼容。
在编写这篇文章的时候,我特意去看了一下Spring Cloud Alibaba,Spring Cloud AWS,Spring Cloud Tencent 等项目的是否也随之进行了更新。
结果发现Spring Cloud Alibaba和Spring Cloud AWS、SpringCloud Tencent做了相关更新,在文档中有了相关说明。
图:Spring Cloud Alibaba 的README
PS:不过我发现个笔误:英文版的readme中把Spring Cloud 2022写成了Spring 2022,中文版readme的则是正确的。
图:Spring Cloud AWS 的README
那么问题来了,Spring新版本对JDK的最低版本要求是Java 17,那么,你准备升级吗?