@FeignClient注入service失败怎么解决
今天小编给大家分享一下@FeignClient注入service失败怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
@FeignClient注入service失败
在入口类上方加入注解
@EnableFeignClients(basePackages = {"com.ritoinfo.framework.evo.sp.sys.api","com.yqjr.sp.eco.member"})
由于使用pom引入service jar包,如果不加basePackage,会找不到包所在路径
Feign注入失败之坑
今天碰到一个很坑的问题,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) { SpringApplication.run(SchedulerApplication.class, args); }}
Feign的jar包如果和服务在同一个工程下,需要指定basePackage
以上就是“@FeignClient注入service失败怎么解决”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341