参考文章:
Spring cloud多模块开发下Feign的使用,以及@FeignClient注入bean找不到异常解决
问题现象:提供的某些openFegin服务无法找到
在业务通过@Autowired将openFegin服务进行自动注入,在启动微服务时候,出现模块依赖找不到的错误。
错误信息如下:
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2018-08-19 21:28:20.526 ERROR 20068 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Field productClient in com.yore.order.service.impl.OrderServiceImpl required a bean of type 'com.yore.product.client.ProductClient' that could not be found.
Action:
Consider defining a bean of type 'com.yore.product.client.ProductClient' in your configuration.
问题解决思路
- 确定在启动类上是否添加了@EnableFeignClients注解 ,并且需要配置上Feign客户端接口的包basePackages = (basePackages = {“com.yore.product.client”})
@EnableFeignClients(basePackages = "com.yore.product.client")
- 确定这两个服务引用的Spring Cloud和Spring Boot版本是否一致,有时因为不一致,在 第一个服务中注解可能引用的是org.springframework.cloud.netflix.feign.FeignClient这个包下的,另一个服务中引用的是org.springframework.cloud.openfeign.FeignClient包下的,这时也会包这个错误,