基于spring cloud多個(gè)消費(fèi)端重復(fù)定義feign client的問(wèn)題
springcloud多個(gè)消費(fèi)端重復(fù)定義feign client
spring cloud消費(fèi)端調(diào)用服務(wù)提供者,有兩種方式rest+ribbon和Feign,F(xiàn)eign是一個(gè)聲明式的偽Http客戶(hù)端更為簡(jiǎn)單易用,所以我們項(xiàng)目選用Feign作為服務(wù)通訊方式
項(xiàng)目有6個(gè)模塊,A,B,C,D,E,F(xiàn),模塊之前必不可少的會(huì)存在相互調(diào)用的情況
問(wèn)題來(lái)了。通過(guò)FeignClient的方式調(diào)用服務(wù)端,需要在消費(fèi)端建立對(duì)服務(wù)端的調(diào)用的FeignClient接口
- 假如A和B都需要調(diào)用C。
- A調(diào)用C需要在A(yíng)模塊中建立一個(gè)C的FeignClient接口
- B調(diào)用C也需要在B模塊建立一個(gè)C的FeignClient接口
- 如果D、E、F都需要用到C模塊,那么還需要建立3個(gè)FeignClient。而這些FeignClient里面的代碼都是一樣的。
既然這樣那FeignClient接口能不能定義為一個(gè)通用的接口呢。
作者嘗試將FeignClient單獨(dú)建立了一個(gè)模塊G,將對(duì)各個(gè)模塊的FeignClient調(diào)用接口集中在模塊G中管理,A,B,C,D,E,F(xiàn)模塊互調(diào)時(shí),只需要在pom中引入G模塊即可。
想法很美好,現(xiàn)實(shí)很殘酷,實(shí)驗(yàn)結(jié)果失敗了。
引入模塊G后,啟動(dòng)SpringBoot,控制報(bào)錯(cuò)。找不到bean。
消費(fèi)端啟動(dòng)類(lèi)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的類(lèi)沒(méi)法掃描到
在spring cloud+feignClient報(bào)錯(cuò)
在spring cloud+feignClient中出現(xiàn)Consider defining a bean of type ‘xxxx' in your configuration 錯(cuò)誤
大部分主要原因是沒(méi)有啟用
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java定位死鎖的三種方法(jstack、Arthas和Jvisualvm)
這篇文章主要給大家介紹了關(guān)于java定位死鎖的三種方法,分別是通過(guò)jstack定位死鎖信息、通過(guò)Arthas工具定位死鎖以及通過(guò) Jvisualvm 定位死鎖,文中還介紹了死鎖的預(yù)防方法,需要的朋友可以參考下2021-09-09淺談java Iterator.remove()方法的用法(詳解)
下面小編就為大家?guī)?lái)一篇淺談java Iterator.remove()方法的用法(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01Spring實(shí)戰(zhàn)之Bean的作用域singleton和prototype用法分析
這篇文章主要介紹了Spring實(shí)戰(zhàn)之Bean的作用域singleton和prototype用法,結(jié)合實(shí)例形式分析了Bean的作用域singleton和prototype相關(guān)使用方法及操作注意事項(xiàng),需要的朋友可以參考下2019-11-11Mybatis 實(shí)現(xiàn)一個(gè)搜索框?qū)Χ鄠€(gè)字段進(jìn)行模糊查詢(xún)
這篇文章主要介紹了Mybatis 實(shí)現(xiàn)一個(gè)搜索框?qū)Χ鄠€(gè)字段進(jìn)行模糊查詢(xún),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01Java實(shí)現(xiàn)HTML轉(zhuǎn)為Word的示例代碼
本文以Java代碼為例為大家詳細(xì)介紹如何實(shí)現(xiàn)將HTML文件轉(zhuǎn)為Word文檔(.docx、.doc)。在實(shí)際開(kāi)發(fā)場(chǎng)景中可參考此方法來(lái)轉(zhuǎn)換,感興趣的可以了解一下2022-06-06SpringBoot整合Mysql和Redis的詳細(xì)過(guò)程
這篇文章主要介紹了SpringBoot整合Mysql和Redis的示例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02Javaweb開(kāi)發(fā)環(huán)境Myeclipse6.5 JDK1.6 Tomcat6.0 SVN1.8配置教程
這篇文章主要介紹了Javaweb開(kāi)發(fā)環(huán)境Myeclipse6.5 JDK1.6 Tomcat6.0 SVN1.8配置教程,感興趣的小伙伴們可以參考一下2016-06-06