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


    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>
    
  • 相关阅读:
    laravel faker,种子文件,数据工厂,数据填充
    phpstorm2020 修改快捷注释时的斜杠的位置
    rbac 4表 常规设计
    laravel 模型迁移文件常规字段设计
    php artisan 常用基础命令一
    MySQL查询(下)
    mysql的增删改查(列子)
    python-面向对象的一些简单操作
    PHP版本新特新历史
    日志文件分析常用总结
  • 原文地址:https://www.cnblogs.com/keeya/p/14476548.html
Copyright © 2020-2023  润新知