基于spring cloud多个消费端重复定义feign client的问题
springcloud多个消费端重复定义feign client
spring cloud消费端调用服务提供者,有两种方式rest+ribbon和Feign,Feign是一个声明式的伪Http客户端更为简单易用,所以我们项目选用Feign作为服务通讯方式
项目有6个模块,A,B,C,D,E,F,模块之前必不可少的会存在相互调用的情况
问题来了。通过FeignClient的方式调用服务端,需要在消费端建立对服务端的调用的FeignClient接口
- 假如A和B都需要调用C。
- A调用C需要在A模块中建立一个C的FeignClient接口
- B调用C也需要在B模块建立一个C的FeignClient接口
- 如果D、E、F都需要用到C模块,那么还需要建立3个FeignClient。而这些FeignClient里面的代码都是一样的。
既然这样那FeignClient接口能不能定义为一个通用的接口呢。
作者尝试将FeignClient单独建立了一个模块G,将对各个模块的FeignClient调用接口集中在模块G中管理,A,B,C,D,E,F模块互调时,只需要在pom中引入G模块即可。
想法很美好,现实很残酷,实验结果失败了。
引入模块G后,启动SpringBoot,控制报错。找不到bean。
消费端启动类Application加了扫描包注解@ComponentScan(basePackages={"com.chelizi.feign.intf"})
***************************
APPLICATION FAILED TO START
***************************Description:
A component required a bean of type 'com.chelizi.feign.intf.system.SysSerialNumberController' that could not be found.
Action:Consider defining a bean of type 'com.chelizi.feign.intf.system.SysSerialNumberController' in your configuration.
加了上面的@ComponentScan注解后,com.chelizi.feign.intf下的普通@Component或者@Service的JavaBean是可以被扫描到的,但是@FeignClient的类没法扫描到
在spring cloud+feignClient报错
在spring cloud+feignClient中出现Consider defining a bean of type ‘xxxx' in your configuration 错误
大部分主要原因是没有启用
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
java定位死锁的三种方法(jstack、Arthas和Jvisualvm)
这篇文章主要给大家介绍了关于java定位死锁的三种方法,分别是通过jstack定位死锁信息、通过Arthas工具定位死锁以及通过 Jvisualvm 定位死锁,文中还介绍了死锁的预防方法,需要的朋友可以参考下2021-09-09浅谈java Iterator.remove()方法的用法(详解)
下面小编就为大家带来一篇浅谈java Iterator.remove()方法的用法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-01-01Spring实战之Bean的作用域singleton和prototype用法分析
这篇文章主要介绍了Spring实战之Bean的作用域singleton和prototype用法,结合实例形式分析了Bean的作用域singleton和prototype相关使用方法及操作注意事项,需要的朋友可以参考下2019-11-11Javaweb开发环境Myeclipse6.5 JDK1.6 Tomcat6.0 SVN1.8配置教程
这篇文章主要介绍了Javaweb开发环境Myeclipse6.5 JDK1.6 Tomcat6.0 SVN1.8配置教程,感兴趣的小伙伴们可以参考一下2016-06-06
最新评论