基于spring cloud多個(gè)消費(fèi)端重復(fù)定義feign client的問題
springcloud多個(gè)消費(fèi)端重復(fù)定義feign client
spring cloud消費(fèi)端調(diào)用服務(wù)提供者,有兩種方式rest+ribbon和Feign,F(xiàn)eign是一個(gè)聲明式的偽Http客戶端更為簡(jiǎn)單易用,所以我們項(xiàng)目選用Feign作為服務(wù)通訊方式
項(xiàng)目有6個(gè)模塊,A,B,C,D,E,F(xiàn),模塊之前必不可少的會(huì)存在相互調(diào)用的情況
問題來了。通過FeignClient的方式調(diào)用服務(wù)端,需要在消費(fèi)端建立對(duì)服務(wù)端的調(diào)用的FeignClient接口
- 假如A和B都需要調(diào)用C。
- A調(diào)用C需要在A模塊中建立一個(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)類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報(bào)錯(cuò)
在spring cloud+feignClient中出現(xiàn)Consider defining a bean of type ‘xxxx' in your configuration 錯(cuò)誤
大部分主要原因是沒有啟用
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
idea使用帶provide修飾依賴導(dǎo)致ClassNotFound
程序打包到Linux上運(yùn)行時(shí),若Linux上也有這些依賴,為了在Linux上運(yùn)行時(shí)避免依賴沖突,可以使用provide修飾,本文主要介紹了idea使用帶provide修飾依賴導(dǎo)致ClassNotFound,下面就來介紹一下解決方法,感興趣的可以了解一下2024-01-01
使用list stream: 任意對(duì)象List拼接字符串
這篇文章主要介紹了使用list stream:任意對(duì)象List拼接字符串操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
git stash 和unstash的使用操作,git unstash failed
這篇文章主要介紹了git stash 和unstash的使用操作,git unstash failed,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02
Java數(shù)組擴(kuò)容實(shí)現(xiàn)方法解析
這篇文章主要介紹了Java數(shù)組擴(kuò)容實(shí)現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
教你用Springboot實(shí)現(xiàn)攔截器獲取header內(nèi)容
項(xiàng)目中遇到一個(gè)需求,對(duì)接上游系統(tǒng)是涉及到需要增加請(qǐng)求頭,請(qǐng)求頭的信息是動(dòng)態(tài)獲取的,需要?jiǎng)討B(tài)從下游拿到之后轉(zhuǎn)給上游,文中非常詳細(xì)的介紹了該需求的實(shí)現(xiàn),需要的朋友可以參考下2021-05-05
詳解Huffman編碼算法之Java實(shí)現(xiàn)
Huffman編碼是一種編碼方式,常用于無損壓縮。本文只介紹用Java語言來實(shí)現(xiàn)該編碼方式的算法和數(shù)據(jù)結(jié)構(gòu)。有興趣的可以了解一下。2016-12-12

