前言
Spring Cloud是一个基于Spring Boot的微服务框架,用于构建和管理分布式系统的各个组件。它提供了一套完整的解决方案,包括服务注册与发现、配置管理、负载均衡、熔断器、消息总线、数据流等功能。
SpringCloud2023为当前Spring Cloud的最新版本迭代,基于Spring6和Springboot3以后的版本研发。因此开发选择SpringCloud的版本也就对应的选择了Springboot和Spring的版本。
版本依赖关系
SpringCoud版本选择 | Springboot版本选择 |
---|---|
2023.0.x aka Leyton | 3.2.x |
2022.0.x aka Kilburn | 3.0.x, 3.1.x (Starting with 2022.0.3) |
2021.0.x aka Jubilee | 2.6.x, 2.7.x (Starting with 2021.0.3) |
2020.0.x aka Ilford | 2.4.x, 2.5.x (Starting with 2020.0.3) |
Hoxton | 2.2.x, 2.3.x (Starting with SR5) |
Greenwich | 2.1.x |
Finchley | 2.0.x |
Edgware | 1.5.x |
Dalston | 1.5.x |
其中 Spring Cloud Dalston, Edgware, Finchley, 和 Greenwich 已经EOF,结束支持了。
最新版本是2023(cloud L系列),除了springboot版本要求3.2以外,其它的生态软件还暂未迭代到对应的版本,比如cloud alibaba还是2022的版本。但是出于Spring boot的良好兼容性,通过版本的修改验证还是可以直接使用。原理是一致的。
引入BOM
SpringCloud2022实战基于Spring Cloud K系列版本。
在根工程管理pom.xml或者gradle.setting中使用bom管理依赖。
maven的引入方式:
代码语言:xml复制<properties>
<spring-cloud.version>2022.0.1</spring-cloud.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
gradle的引入方式:
代码语言:groovy复制plugins {
id 'java'
id 'org.springframework.boot' version '3.0.5'
id 'io.spring.dependency-management' version '1.1.0'
}
ext {
set('springCloudVersion', "2022.0.1")
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
接下来在启动工程中就可以使用各种cloud的starter来引入云服务特性了。下面以Netflix的引入为例说明。
代码语言:xml复制<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- ... -->
</dependencies>
代码语言:groovy复制dependencies {
implementation 'org.springframework.cloud:spring-cloud-starter-config'
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
//...
}
关于作者
来自一线全栈程序员nine的八年探索与实践,持续迭代中。