摘要:其实 Spring Cloud 最新的版本命名方式早已经变更了,以后就是YEAR.x这种命名方式了,不清楚的可以看下我之前写的两篇文章:
2024 年都接近尾声了,Spring Cloud 2024 正式版才刚刚发布,真是姗姗来迟啊。
Spring Cloud 2024 从里程碑版本到正式版本,一共发布了 4 次版本:
2024.0.0
2024.0.0-RC1
2024.0.0-M2
2024.0.0-M1
来看看最新的版本情况:
Spring Cloud2024,代号:Moorgate,关于版本的命名、代号,发布时间是不是很奇怪?
其实 Spring Cloud 最新的版本命名方式早已经变更了,以后就是YEAR.x这种命名方式了,不清楚的可以看下我之前写的两篇文章:
比如我举两个例子:
Spring Cloud 2024.0.0 中的 2024 是指 Spring Cloud 2024.x 版本线,2023.0.0 则是指 2023 这个版本线的第 1 个版本,而不是指某个年份发布的版本。如果没有意外,Spring Cloud 2025.x 将会在 2025 年 12 月份正式发布,也一样会经历里程碑版本、候选版本,最后发布正式版本,这需要一个周期。
新特性解读
Spring Cloud 2024.0.0 是一个大版本,来看看更新了啥。
系统环境
Spring Cloud 2024.0.0 基于以下环境进行构建:
JDK 17+,最高支持 JDK 23
Spring Framework 6.2.0+
所以,这也是 Spring Cloud 2024.0.0 的最低依赖要求,其实JDK 和 Spring 版本是跟 Spring Boot 版本走的,升级请小心兼容性。
模块升级
Spring Cloud 2024.0.0 更新了以下核心模块:
模块 版本 Spring Cloud Vault 4.2.0 Spring Cloud Bus 4.2.0 Spring Cloud Task 3.2.0 Spring Cloud Zookeeper 4.2.0 Spring Cloud Kubernetes 3.2.0 Spring Cloud Function 4.2.0 Spring Cloud Commons 4.2.0 Spring Cloud Openfeign 4.2.0 Spring Cloud Circuitbreaker 3.2.0 Spring Cloud Starter Build 2024.0.0 Spring Cloud Stream 4.2.0 Spring Cloud Consul 4.2.0 Spring Cloud Gateway 4.2.0 Spring Cloud Contract 4.2.0 Spring Cloud Config 4.2.0 Spring Cloud Build 4.2.0 Spring Cloud Netflix 4.2.0
Spring Cloud CircuitBreaker
之前的版本有一个问题:
CircuitBreaker 实例只支持全局禁用 TimeLimiter,或者必须定义一个自定义的长时间超时配置,即使实例不需要考虑超时问题,或者已经有超时配置,也需要使用该自定义配置。Spring Cloud 2024.0.0 支持对所有 CircuitBreaker 实例,按组或实例级别禁用 TimeLimiter,可控制的颗粒度更小了。
Spring Cloud Config
更新内容如下:
修复一个 S3 协议的后端存储,对于多个应用程序名称的行为有所不同的问题。
支持在环境存储库中使用多标签,服务器端会处理多标签,无需客户端介入。
支持使用给定的字符集存储和接收资源。
添加对MongoDB环境存储库支持。
Spring Cloud Gateway更新内容如下:
支持缓存网关过滤器(filters),以避免在每一个请求中进行排序。
支持在 HttpClientProperties 中配置 SslBundles 参数。
支持 Netty 的 HTTP Client 连接池的leasing策略配置。
支持在 MVC 服务器中实现 ModifyResponseBody。
使用了新的 Spring Boot HTTP 客户端自动配置框架,配置更简单方便了。
Webflux Java DSL 添加了一个嵌套布尔谓词的方法。
支持向路由添加启用标志。
在 Grafana 模板中添加了 QPS、延迟等指标。
修复了与多个路由一起使用的同一个 redis rate limiter bucket。
Spring Cloud Kubernetes更新内容如下:
添加对配置观察器(watcher)的支持,以关闭应用程序并刷新应用程序。
Spring Cloud Netflix更新内容如下:
添加对RestClient的支持,并成为了 Netflix Eureka 的默认 HTTP 客户端。
Spring Cloud Commons更新内容如下:
添加对负载平衡RestTemplateBuilder的支持。
支持无需 KeyStore 就可以创建一个 TrustStore。
Spring Cloud Bus更新内容如下:
添加了一个关闭事件、端点,以及监听器。
Spring Cloud OpenFeign更新内容如下:
将ignorecase字段添加到 Spring 分页,以与SortHandlerMethodArgumentResolverSupport::parseIgnoreCase进行兼容。
Spring Cloud Stream更新内容如下:
确保BindingServiceProperties.bindings的线程安全性。
支持在 Supplier 中使用 PostProcessing 的能力。
更改 DefaultBinderFactory 类的 getBinder 方法中synchronized的使用,以实现虚拟线程兼容。
插播一条:如果你近期准备面试跳槽,点击Java面试库小程序刷题吧,共 3000+ 道,几乎覆盖了所有主流 Java 技术面试题。
Spring Cloud 最新维护版本
Spring Cloud 支持的版本情况,以及对应的 Spring Boot、子模块版本如下表所示。
模块 * 2025.0 (Northfields)* 2024.0 (Moorgate) 2023.0 (Leyton)
2022.0 (Kilburn)spring-boot3.5.x 3.4.x 3.3.x/3.2.x 3.1.x/3.0.xspring-cloud-bus4.3.x 4.2.x 4.1.x 4.0.xspring-cloud-circuitbreaker3.3.x 3.2.x 3.1.x 3.0.xspring-cloud-commons4.3.x 4.2.x 4.1.x 4.0.xspring-cloud-config4.3.x 4.2.x 4.2.x 4.1.xspring-cloud-consul4.3.x 4.2.x 4.1.x 4.0.xspring-cloud-contract4.3.x 4.2.x 4.1.x 4.0.xspring-cloud-function4.3.x 4.2.x 4.1.x 4.0.xspring-cloud-gateway4.3.x 4.2.x 4.1.x 4.0.xspring-cloud-kubernetes3.3.x 3.2.x 3.1.x 3.0.xspring-cloud-netflix4.3.x 4.2.x 4.1.x 4.0.xspring-cloud-openfeign4.3.x 4.2.x 4.1.x 4.0.xspring-cloud-stream4.3.x 4.2.x 4.1.x 4.0.xspring-cloud-task3.3.x 3.2.x 3.1.x 3.0.xspring-cloud-vault4.3.x 4.2.x 4.1.x 4.0.xspring-cloud-zookeeper4.3.x 4.2.x 4.1.x 4.0.x需要注意的是: 正常维护中的版本中有 Spring Cloud 2023+ 了,2022 及之前的版本已经彻底结束生命周期了,官方不再提供维护支持了,非必要,新项目尽量不要再使用了。
Spring Cloud 2024.0.0 更新了不少功能啊,各个模块都得到了升级和加强,特别是对Spring Cloud Gateway和Spring Cloud Config这两个模块的更新非常大。
如果你问我有没有必要升级最新版本,对于想尝鲜的小伙伴是可以升级的,企业级生产项目就没有必要升级了,也许还有一堆 bug 呢,提前了解下吧。
Maven 依赖给大家奉上:
org.springframework.cloud groupId> spring-cloud-dependencies artifactId> 2024.0.0 version> pom type> import scope> dependency> dependencies> dependencyManagement>Spring Cloud 依赖管理采用的是import导入方式,里面管理了许多子模块依赖,统一引入管理,使用时只需要引入对应依赖的坐标即可,不需要再指定子模块的版本号。
你们用的哪个 Spring Cloud 版本呢?欢迎留言分享~
来源:科技拜师会