菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
109
0

Spring Feign 注入失败问题排查思路

原创
05/13 14:22
阅读数 33021

Spring Feign 注入失败问题排查思路

问题的表现很明显,就是在spring容器中找不到被@FeignClient标注类的实例:

***************************
APPLICATION FAILED TO START
***************************
 
Description:
 
Field xxxClient in xxx包 required a bean of type 'xxxClient' that could not be found.
 
 
Action:
Consider defining a bean of type 'xxxClient' in your configuration.

造成上述异常的原因很明显,在spring容器中找不到对应的实例。

被@FeignClient标注的类,在容器初始化的时候会生成对应的代理的,如果没有生成,说明spring没有扫描到该类。所以在启动类上加上 @EnableFeignClients 即可。

但有的情况下,只加@EnableFeignClients也是扫描不到的,比如说,你的项目是多模块,包名不同,所以扫描不到,这样可以在注解中指定 basePackages:

@EnableFeignClients(basePackages = "xxx.proxy")
public class xxxApplication {

    public static void main(String[] args) {
        SpringApplication.run(xxxApplicationn.class, args);
    }
}

意思是扫描指定包路径下的 带有 @FeignClient 的类。

如果你的 @EnableFeignClients 飘红引用不到,那你一定是引用错包了,对于SpringBoot这边建议引用starter:

<!--    feign    -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

发表评论

0/200
109 点赞
0 评论
收藏