深圳幻海软件技术有限公司 欢迎您!

Spring Cloud 2022 发布,这几个组件要移除了!

2023-02-28

继SpringBoot3.0和SpringFramework6.0之后,SpringCloud终于也推出了新版本——2022.0.0,官网把这个版本命名为Kilburn。目前在Maven仓库中已经可以下载使用了,通过POM文件即可依赖到项目中:复制<dependencyManagement&g

继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>
  • 1.
  • 2.

最低依赖

​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已经做了相关更新,在文档中有了相关说明。​

图:Spring Cloud Alibaba 的README

PS:不过我发现个笔误:英文版的readme中把Spring Cloud 2022写成了Spring 2022,中文版readme的则是正确的。

图:Spring Cloud AWS 的README

那么问题来了,Spring新版本对JDK的最低版本要求是Java 17,那么,你准备升级吗?

参考资料:

https://spring.io/projects/spring-cloud​。

https://github.com/awspring/spring-cloud-aws​。

https://github.com/alibaba/spring-cloud-alibaba​。