springcloud学习之分布式项目的相关引用

使用springcloud开发分布式系统时,多个微服务需要相互调用,一般采用feign的方式进行调用,如果各微服务分别编写,可能会存在很多的冗余代码,所以一般会把各个微服务需要使用的公共代码进行抽取,然后创建一个公共的服务,以供各个微服务进行调用,具体的方法如下:本文使用的IDEA2019 3.3版本,springboot2.2.4版本。

一、创建项目,本项目共创建了4个微服务项目和一个公共的项目,如下图:

1、springboot-employee-service01项目是提供员工相关信息查询的微服务,springboot-employee-service02项目是springboot-employee-service01的集群。

2、springboot-eureka-service01是注册中心eureka的微服务

3、springboot-feign-api-service是提供所有微服务公共代码的

4、springboot-order-service01是提供订单服务的微服务。

二、微服务引入springboot-feign-api-service项目(公共代码),下面以springboot-order-service01服务引用springboot-feign-api-service为例,介绍如何解决这个坑。

1、把springboot-feign-api-service进行clean+install,打包后上传到本地的maven仓库内。

2、springboot-order-service01项目在pom.xml中导入上述的依赖包:

<dependency>
    <groupId>com.cn</groupId>
    <artifactId>springboot-feign-api-service</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

3、在springboot-order-service01中调用springboot-feign-api-service中的相关服务。

三、代码完成后,微服务的安装。这里有一个坑,一定要注意。

1、打包springboot-eureka-service01项目,使用maven中的package命令。

2、打包springboot-order-service01项目,使用maven中的package命令,但是会一直报错找不到springboot-feign-api-service项目中的公共类,无法进行打包。

3、出现上述问题的原因是因为springboot-feign-api-service打包安装使用的springboot内置的构建工具(如下)和springboot-order-service01使用的构建工具相同,产生了冲突。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

4、解决方法:

 因为公共代码项目是提供其他所有的微服务项目调用,所以修改公共代码项目的构建方法,具体如下

 a、springboot2.x

 

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <executions>
        <execution>
            <id>repackage</id>
            <configuration>
                <classifier>exec</classifier>
            </configuration>
        </execution>
    </executions>
</plugin>

b、springboot1.x

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
            <configuration>
                <classifier>exec</classifier>
            </configuration>
        </execution>
    </executions>
</plugin>
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值