Spring Cloud Alibaba与Spring Boot、Spring Cloud之间的二三事

本文阐述了在分布式项目中引入spring-cloud-dependencies的目的及其如何帮助统一管理子项目版本,避免版本冲突。同时,介绍了在使用SpringCloudAlibaba构建微服务时,如何正确引入并管理依赖。

 

我们在分布式项目中引入 spring-cloud-dependencies  是为了控制旗下的子项目版本。

比如当我们项目需要:Spring Cloud Eureka(服务注册中心)、Spring Cloud Config(配置注册中心)、Spring Cloud Netflix等框架时,不比再引入<version> 节点,因为 spring-cloud-dependencies  会管理这些版本以避免版本冲突。

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.SR1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>



<dependencies>
        <dependency>
            <!-- 配置中心服务端 -->
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
                    <!-- 没有版本节点 -->
        </dependency>
        <dependency>
            <!-- eureka客户端 -->
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
                 <!-- 没有版本节点 -->
        </dependency>
</dependencies>
    

由于 Spring Cloud 基于Spring Boot构建,而  Spring Cloud Alibaba  又基于Spring Cloud Common的规范实现,所以当我们使用  Spring Cloud Alibaba  来构建微服务应用的时候,不是像以往使用  Spring Cloud  的时候,直接引入 Spring Cloud   的主版本(Dalston、Edgware、Finchley、Greenwich这些)就可以了。

 Spring Cloud Alibaba  并不算 Spring Cloud 旗下的子项目,所以在引入  Spring Cloud  的基础上需要单独引入  Spring Cloud Alibaba   依赖和对应版本号。

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.SR1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>0.2.1.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>



<dependencies>
        <dependency>
            <!-- 配置中心服务端 -->
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
                    <!-- 没有版本节点 -->
        </dependency>
        <dependency>
            <!-- eureka客户端 -->
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
                 <!-- 没有版本节点 -->
        </dependency>
</dependencies>
    

这就是为什么当我们使用分布式的框架时,需要引入 spring-cloud-denpendencies  和  spring-cloud-alibaba-denpendencies

两大依赖了。

当然,当你只单独使用SpringCloud旗下的某个子项目时,不一定非要引入 spring-cloud-denpendencies 依赖,可以直接引入某个子项目的版本依赖,   spring-cloud-denpendencies   的主要目的是:

当项目引入大量旗下子项目时,为了统一管理版本防止子项目冲突才需要引入。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值