您好,登錄后才能下訂單哦!
今天小編給大家分享一下@FeignClient注入service失敗怎么解決的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
在入口類上方加入注解
@EnableFeignClients(basePackages = {"com.ritoinfo.framework.evo.sp.sys.api","com.yqjr.sp.eco.member"})
由于使用pom引入service jar包,如果不加basePackage,會找不到包所在路徑
今天碰到一個很坑的問題,feign 注入失敗。
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.
很簡單的一個報錯信息,
直接看Application ,發現以及包含注解 @EnableFeignClients,以及 @ComponentScan("com.pance"),并且feign 也包含在 com.pance目錄下。
查了良久,
終于在最崩潰的時候,發現了一個細節的坑,feign 時在另外的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); } }
Feign的jar包如果和服務在同一個工程下,需要指定basePackage
以上就是“@FeignClient注入service失敗怎么解決”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。