我遇到的这个问题是说在远程调用服务的 controller 自动注入 IFeignService 失败。最后发现是依赖错了。
<!--1-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
<!--2-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
<!--3-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-openfeign-core</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
最开始引用了第三个,@EnableFeignClients 和 @FeignClient 都可以正常引入,但是启动项目时报注入失败的错误。
后来 pom 改成第二个,但是@EnableFeignClients 和 @FeignClient 都报错,在网上查说是版本的问题,我去把 maven 仓库中
spring-cloud-starter-openfeign 这里面的依赖删了重新导入,注解就不会报错了。
至于第一个,在网找到了两个的区别
说白了就是 Feign 不支持 springMVC 注解,而 openFeign 支持。
Feign 使用 @FeignClient 时,要用 @RequestLine(“GET /zzx/{id}”);
openFeign 则使用 @RequestMapping(value = “zzx/{id}”, method = RequestMethod.POST)
openfeign 是 springcloud 对 feign 的封装。
~有写错的或者有更优雅的写法记得@ 我~