Spring Cloud @EnableFeignClients注解的屬性字段basePacka詳解
@EnableFeignClients注解的屬性字段basePacka
一般情況下,我們?cè)趩?dòng)類上面添加了@EnableFeignClients注解就是表明當(dāng)前應(yīng)用服務(wù)(我們稱之為服務(wù)A)中有的地方想要引用其它應(yīng)用服務(wù)(我們稱之為服務(wù)B)中的接口。
如果服務(wù)B可以單獨(dú)啟動(dòng)起來并且注冊(cè)到注冊(cè)中心,則我們僅僅在服務(wù)A的啟動(dòng)類中添加@EnableFeignClients注解即可;如果服務(wù)B沒有單獨(dú)啟動(dòng)起來,而是以Jar包的形式被引入到服務(wù)A中,則服務(wù)A在啟動(dòng)的時(shí)候是不會(huì)主動(dòng)去加載服務(wù)B中標(biāo)注了@FeignClient注解的interface而去自動(dòng)生成bean對(duì)象,
這樣我們?cè)诜?wù)A中的Controller類中以如下這種方式去引入使用服務(wù)B中的標(biāo)注了@FeignClient注解的接口 是會(huì)報(bào)錯(cuò)的
import com.bc.product.client.ProductClient;
@RestController
public class ClientController {
@Autowired
private ProductClient productClient;
...
}
這個(gè)時(shí)候就需要使用basePackages屬性字段去指明應(yīng)用程序A在啟動(dòng)的時(shí)候需要掃描服務(wù)B中的標(biāo)注了@FeignClient注解的接口的包路徑
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients(basePackages = {"com.bc.product.client"})
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
}
關(guān)于EnableFeignClients的basePackages問題
如果使用了springcloud的openFeign,在application上需要添加@EnableFeignClients注解。卻沒有明確指明basePackages的路勁。
則spring ioc不會(huì)自動(dòng)為外部引入的其他服務(wù)jar包里,標(biāo)注了@FeignClient注解的interface自動(dòng)生成bean對(duì)象。
正確的做法應(yīng)該是明確指定basePackages的值,比如像這樣:

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot手寫一個(gè)自己的starter源碼
在本篇文章里小編給大家整理了關(guān)于springboot手寫一個(gè)自己的starter源碼的全部知識(shí)點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。2019-06-06
Spring Boot利用Java Mail實(shí)現(xiàn)郵件發(fā)送
這篇文章主要為大家詳細(xì)介紹了Spring Boot利用Java Mail實(shí)現(xiàn)郵件發(fā)送,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
一文掌握Spring中循環(huán)依賴與三級(jí)緩存
這篇文章主要介紹了Spring中循環(huán)依賴與三級(jí)緩存,Spring通過三級(jí)緩存解決了循環(huán)依賴,其中一級(jí)緩存為單例池,二級(jí)緩存為早期曝光對(duì)象earlySingletonObjects,三級(jí)緩存為早期曝光對(duì)象工廠(singletonFactories),本文結(jié)合實(shí)例代碼介紹的非常詳細(xì),需要的朋友參考下吧2023-09-09
httpclient ConnectionHolder連接池連接保持源碼解析
這篇文章主要為大家介紹了httpclient ConnectionHolder連接池連接保持源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
SpringCloud+nacos部署在多ip環(huán)境下統(tǒng)一nacos服務(wù)注冊(cè)ip(親測(cè)有效)
在部署SpringCoud項(xiàng)目的時(shí)候分服務(wù)器部署注冊(cè)同一個(gè)nacos服務(wù),但是在服務(wù)器有多個(gè)ip存在的同時(shí)(內(nèi)外網(wǎng)),就會(huì)出現(xiàn)注冊(cè)服務(wù)ip不同的問題,導(dǎo)致一些接口無法連接訪問,經(jīng)過多次排查終于找到問題并找到解決方法,需要的朋友可以參考下2023-04-04
IDEA中啟動(dòng)多個(gè)SpringBoot服務(wù)的實(shí)現(xiàn)示例
本文主要介紹了IDEA中啟動(dòng)多個(gè)SpringBoot服務(wù)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08

