FeignClient註解常見的異常NoSuchBeanDefinitionException: No qualifying bean of type

常見異常:

NoSuchBeanDefinitionException: No qualifying bean of type

只要是新增@FeignClient引起的,只要在SpringBoot的啓動類上添加@EnableFeignClients註解就能解決,但是注意如下:

1、@FeignClient所在的包路徑不從屬於Application.java所在的package時,會導致feign調用不,必須在@EnableFeignClients中指定路徑;

2、@EnableFeignClients中一旦指定了basePackages,默認從屬於Application.java所在的package的@FeignClient所在的包路徑也要指定;

3、一般情況下,項目中需要對外暴露Rest接口,定義的Api接口都是從屬於Application.java所在的package;如果調用第三方的Rest接口,方案1是引入對方的jar包,然後在@EnableFeignClients中指定路徑;方案2是不引入對方包,在代碼中自定義接口(包路徑可控,第三方包拷貝過來即可),畢竟說到底底層都是Http調用;我們指定@EnableFeignClients註解中的路徑是爲了Springboot的自動裝配和Bean託管用的。

4、定義@FeignClient的時候,常用openfeign或者是netflix.feign的包,項目中會出現兩個共存的情況,導致Springboot託管Bean有問題,處理的方案就是:統一以本項目爲準,比如項目中使用了openfeign,如果引入第三方包是netflix.feign,則不引入依賴包,直接重寫對方接口(拷貝對方代碼到項目中,修改@FeignClient依賴包即可);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章