乐趣区

关于springcloud:SpringCloud和SpringBoot的版本依赖该怎么选择

前言

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 的引入形式:

<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 的引入形式:

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 的引入为例阐明。

<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>
dependencies {
  implementation 'org.springframework.cloud:spring-cloud-starter-config'
  implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
  //...
}

对于作者

来自一线全栈程序员 nine 的八年摸索与实际,继续迭代中。欢送关注“雨林寻北”或增加集体卫星 codetrend(备注技术)。

退出移动版