以前使用的是dubbo,后来换了springcloud 后,使用feign的方式调用服务,由于对feign了解不深刻,在使用过程中遇到了写问题,总结一下,希望对有相同困扰的同学有所帮助~
先导入相关依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.1.1.RELEASE</version>
<exclusions>
<exclusion>
<artifactId>archaius-core</artifactId>
<groupId>com.netflix.archaius</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.netflix.archaius</groupId>
<artifactId>archaius-core</artifactId>
<version>0.7.6</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
1.首先我们先简单写个接口在服务端
2.在controller层写一个对外的http 接口,要和上面的接口地址,命名完全一样
3.将api 通过maven deploy 发到maven私服
4.复制maven私服的 pom地址,到消费端的 service层(我是service层调用的)
5.在springboot 项目启动类中扫描到你的服务端的api接口的报名
@EnableFeignClients(basePackages = {"com.Your interface})
6.测试接口 成功
7.遇到的问题
java.lang.NoClassDefFoundError: Lcom/netflix/config/CachedDynamicIntProperty;
解决方式:这个问题困扰了好久,最后发现是因为jar包冲突
这个是因为spring-cloud-starter-alibaba-nacos-discovery或者 spring-cloud-starter-openfeign 这两个jar包中的com.netflix.archaius 版本不对,通过exclusions 排除后,单独引用匹配的版本就可以了
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.1.0.RELEASE</version>
<exclusions>
<exclusion>
<artifactId>archaius-core</artifactId>
<groupId>com.netflix.archaius</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.1.1.RELEASE</version>
<exclusions>
<exclusion>
<artifactId>archaius-core</artifactId>
<groupId>com.netflix.archaius</groupId>
</exclusion>
</exclusions>
</dependency>
==========================================================================
<dependency>
<groupId>com.netflix.archaius</groupId>
<artifactId>archaius-core</artifactId>
<version>0.7.6</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>