解決@FeignClient注入service失敗問題
@FeignClient注入service失敗
在入口類上方加入注解
@EnableFeignClients(basePackages = {"com.ritoinfo.framework.evo.sp.sys.api","com.yqjr.sp.eco.member"})
由于使用pom引入service jar包,如果不加basePackage,會(huì)找不到包所在路徑
Feign注入失敗之坑
今天碰到一個(gè)很坑的問題,feign 注入失敗。
錯(cuò)誤信息
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
12-18 15:29:57.654 ERROR [o.s.b.diagnostics.LoggingFailureAnalysisReporter] -
***************************
APPLICATION FAILED TO START
***************************Description:
Field messageFeign in com.pance.scheduler.mdm.dataCenterTask.DataCenter required a bean of type 'com.pance.common.feign.MessageFeign' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)Action:
Consider defining a bean of type 'com.pance.common.feign.MessageFeign' in your configuration.
很簡(jiǎn)單的一個(gè)報(bào)錯(cuò)信息,
直接看Application ,發(fā)現(xiàn)以及包含注解 @EnableFeignClients,以及 @ComponentScan("com.pance"),并且feign 也包含在 com.pance目錄下。
查了良久,
終于在最崩潰的時(shí)候,發(fā)現(xiàn)了一個(gè)細(xì)節(jié)的坑,feign 時(shí)在另外的common 包中引入的,雖然@ComponentScan("com.pance") 指定了掃描路徑包含了feign 的路徑,但是feign如果不是在相同的module 下,就必須加上 自己的掃描范圍,例如
@EnableFeignClients(basePackages = "com.pance")
加上之后,問題解決
@EnableFeignClients(basePackages = "com.pance") @ComponentScan("com.pance") @EnableScheduling @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) public class SchedulerApplication { ? ? public static void main(String[] args) { ? ? ? ? /*only start one application*/ ? ? ? ? SpringApplication.run(SchedulerApplication.class, args); ? ? } }
發(fā)現(xiàn)網(wǎng)上說都是要配置@EnableFeignClients,以及引入jar 包,但是這個(gè)basePackage 這個(gè)值很少有說明。就寫一下自己踩坑的慘痛經(jīng)歷。
Feign的jar包如果和服務(wù)在同一個(gè)工程下,需要指定basePackage
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談Java自定義類加載器及JVM自帶的類加載器之間的交互關(guān)系
這篇文章主要介紹了淺談Java自定義類加載器及JVM自帶的類加載器之間的交互關(guān)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02Java中數(shù)組與集合的相互轉(zhuǎn)換實(shí)現(xiàn)解析
這篇文章主要介紹了Java中數(shù)組與集合的相互轉(zhuǎn)換實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08一篇文章帶你搞懂Java線程池實(shí)現(xiàn)原理
線程池?zé)o論是工作還是面試都是必備的技能,但是很多人對(duì)于線程池的實(shí)現(xiàn)原理卻一知半解,并不了解線程池內(nèi)部的工作原理,今天就帶大家一塊剖析線程池底層實(shí)現(xiàn)原理2022-11-11SpringBoot通過自定義注解實(shí)現(xiàn)配置類的自動(dòng)注入的實(shí)現(xiàn)
本文主要介紹了SpringBoot通過自定義注解實(shí)現(xiàn)配置類的自動(dòng)注入的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04SpringMVC @GetMapping注解路徑?jīng)_突問題解決
MD5對(duì)密碼進(jìn)行加密存儲(chǔ)是常見的一種加密方式,本文主要介紹了Java雙重MD5加密實(shí)現(xiàn)安全登錄,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07