springboot cloud依赖关系

 以下有四个依赖,依次用1,2,3,4标识,并提出有以下疑问

1,

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.6</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

2,3,4 

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud-dependencies.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
         <dependency>
         <!-- Import dependency management from Spring Boot -->
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-dependencies</artifactId>
         <version>${spring-boot-dependencies.version}</version>
         <type>pom</type>
         <scope>import</scope>
      </dependency>
           <dependency>
               <groupId>com.alibaba.cloud</groupId>
               <artifactId>spring-cloud-alibaba-dependencies</artifactId>
               <version>${spring-cloud-alibaba-dependencies.version}</version>
               <type>pom</type>
               <scope>import</scope>
           </dependency>
    </dependencies>
</dependencyManagement>

1.以上4个依赖在什么时候产生,是什么

依赖1,start-parent创建一个springboot项目时默认都会生产这个父依赖

依赖2,在创建springCloud或nacos项目时,需要引入springCloud依赖,比如FeignClient依赖就是来源于springCloud依赖

依赖3,包含springboot的一些默认依赖及其默认版本

依赖4,todo

2.关系

依赖1包含依赖3,依赖3包含springboot默认依赖

 3.引用场景

如果只是单纯的创建一个springboot项目,不需要考虑2,3,4,有默认依赖1即可

如果创建的是springCloud或nacos项目,就需要依赖2,3,4(好像也不是必须),而且依赖2,3,4放一般放在父项目中,需要创建一个父项目,然后子项目依赖该父项目,统一使用父项目的springboot及cloud版本,同时子项目也要加入同样的依赖,不然依赖不到。

4.如何创建一个springCloud或nacos项目

以3个项目举例

1.一个电商项目,订单,商品等,独立为一个springBoot项目,分为父项目子项目,子模块包含model,dao,service,common,facede,facede-stub,client,task,其中facade为springboot项目,其他为普通的maven项目,client中封装clloud-openfeign,实现项目中相互调用

spring-cloud-starter-openfeign

2.nacos项目,各个业务也是独立的,创建了父项目,依赖了2,3,4,子项目依赖父项目,feign调用为父项目cloud feign

3.物流项目,各个模块为独立的springboot项目,springcloud项目,注意创建父项目,子项目时创建普通的maven项目,然后手动加入启动类,直接创建springboot项目导致结构混乱。

5.项目中没有定义版本号,怎么知道依赖哪个版本,如:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

 3中有解释

6.springboot与springCloud版本兼容问题,参考官网springCloud有解释

Spring Cloud

7.创建一个springboot项目需要引用feignClient,启动报错问题

原因,同时有start-parent与2,3,4依赖,且版本不匹配,1与3应该冲突,且parent版本不该低于依赖3

猜你喜欢

转载自blog.csdn.net/C18298182575/article/details/121361548