点击关注公众号,Java 干货及时推送↓ 推荐阅读:11 月 Java 行情爆了。。 ↓↓↓点下面小程序刷题突击面试↓↓↓
大家好,我是R哥。
2024 年都接近尾声了,Spring Cloud 2024 正式版才刚刚发布,真是姗姗来迟啊。
Spring Cloud 2024 从里程碑版本到正式版本,一共发布了 4 次版本:
2024.0.0 2024.0.0-RC1 2024.0.0-M2 2024.0.0-M1
来看看最新的版本情况:
Spring Cloud 2024,代号: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 Boot 3.4.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-boot | 3.5.x | 3.4.x | 3.3.x/3.2.x | 3.1.x/3.0.x |
spring-cloud-bus | 4.3.x | 4.2.x | 4.1.x | 4.0.x |
spring-cloud-circuitbreaker | 3.3.x | 3.2.x | 3.1.x | 3.0.x |
spring-cloud-commons | 4.3.x | 4.2.x | 4.1.x | 4.0.x |
spring-cloud-config | 4.3.x | 4.2.x | 4.2.x | 4.1.x |
spring-cloud-consul | 4.3.x | 4.2.x | 4.1.x | 4.0.x |
spring-cloud-contract | 4.3.x | 4.2.x | 4.1.x | 4.0.x |
spring-cloud-function | 4.3.x | 4.2.x | 4.1.x | 4.0.x |
spring-cloud-gateway | 4.3.x | 4.2.x | 4.1.x | 4.0.x |
spring-cloud-kubernetes | 3.3.x | 3.2.x | 3.1.x | 3.0.x |
spring-cloud-netflix | 4.3.x | 4.2.x | 4.1.x | 4.0.x |
spring-cloud-openfeign | 4.3.x | 4.2.x | 4.1.x | 4.0.x |
spring-cloud-stream | 4.3.x | 4.2.x | 4.1.x | 4.0.x |
spring-cloud-task | 3.3.x | 3.2.x | 3.1.x | 3.0.x |
spring-cloud-vault | 4.3.x | 4.2.x | 4.1.x | 4.0.x |
spring-cloud-zookeeper | 4.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 依赖给大家奉上:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2024.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Spring Cloud 依赖管理采用的是 import 导入方式,里面管理了许多子模块依赖,统一引入管理,使用时只需要引入对应依赖的坐标即可,不需要再指定子模块的版本号。
另外,学 Spring Cloud 必须先掌握 Spring Boot,如果你还没用过 Spring Boot,今天我就送你一份 《Spring Boot 学习笔记》这个很全了,包括底层实现原理及代码实战,非常齐全,助你快速打通 Spring Boot 的各个环节。
Spring Boot 理论和实战源码仓库:
https://github.com/javastacks/spring-boot-best-practice
你们用的哪个 Spring Cloud 版本呢?欢迎留言分享~
好了,今天的分享就到这里了,后面我会更新更多好玩的 Java 技术文章和最新的技术资讯,关注公众号Java技术栈第一时间推送,不要走开哦。
最后,打个小广告,如果你想系统学习 Spring Cloud 微服务,可以报名R哥出品的《Spring Cloud 微服务实战课程》,已支持全新的 Spring Cloud 2023 版本,一次订阅,永久免费更新。
Spring Cloud 无疑是现在 Java 微服务事实上的标准,完全基于 Spring Boot 构建,依赖 Spring 生态体系,可以很好的与各种 Spring 生态项目无缝对接。
所以,不管是职场提升还是面试跳槽,Spring Cloud 都是必备技能。
版权声明: 本文系公众号 "Java技术栈" 原创,转载、引用本文内容请注明出处,抄袭、洗稿一律投诉侵权,后果自负,并保留追究其法律责任的权利。