FeignClient注入错误,IDemoClient that could not be found.

问题描述:

项目引入openFeign ,调用FeignClient提示:

Field demoClient in com.demo2.controller.DemoController required a bean of type 'com.demo.feign.IDemoClient' that could not be found.

**The injection point has the following annotations:

  • @org.springframework.beans.factory.annotation.Autowired(required=true)**

问题的原因是两个报名的路径不一致;FeignClient接口包名和当前服务的包名不一致。

问题解决方案:

方案一:

指定@EnableFeignClients的扫描路径。

java 复制代码
//示例一
@EnableFeignClients("com.demo")


//示例二
@EnableFeignClients(basePackages ="com.demo")
方案二:
java 复制代码
@EnableFeignClients(clients = {IDemoClient.class})

启动就正常了。

@EnableFeignClients学习

是一个声明式的 Web 服务客户端,它使得编写 Web 服务客户端变得更加简单。

@EnableFeignClients 注解通常用于 Spring Boot 应用程序的启动类上,以启用 Feign 客户端的自动配置。当使用 @EnableFeignClients 注解时,Spring 会自动扫描并配置所有使用 @FeignClient 注解的接口。

@EnableFeignClients源码
java 复制代码
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Import(FeignClientsRegistrar.class)
public @interface EnableFeignClients {


	String[] value() default {};


	String[] basePackages() default {};


	Class<?>[] basePackageClasses() default {};


	Class<?>[] defaultConfiguration() default {};


	Class<?>[] clients() default {};

}
@EnableFeignClients用属性
  1. basePackages : 指定Feign客户端接口所在的包路径。Spring Boot会自动扫描这些包中带有@FeignClient注解的接口。

    java 复制代码
    @EnableFeignClients(basePackages = "com.demo.client")
  2. basePackageClasses: 通过类来指定Feign客户端接口所在的包路径。这些类必须位于你想要扫描的包中。

    java 复制代码
    @EnableFeignClients(basePackageClasses = IDemoClient.class)
  3. clients: 一个类数组,指定Feign客户端接口的类。Spring Boot会扫描这些类并为它们创建代理对象。

    java 复制代码
    ​
    @EnableFeignClients(clients = { IDemoClient.class, IDemo2Client.class })
    
    ​
  4. defaultConfiguration: 指定Feign客户端的默认配置类。这个配置类可以提供Feign客户端的全局配置。

    java 复制代码
    @EnableFeignClients(defaultConfiguration = DemoFeignClientConfig.class)
复制代码
value : 指定要扫描的包路径,用于查找使用 @FeignClient 注解的接口。
java 复制代码
@EnableFeignClients("com.demo.client")



相关推荐
你怎么知道我是队长1 小时前
C语言---枚举变量
c语言·开发语言
李慕婉学姐1 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·开发语言·数据库
吃茄子的猫2 小时前
quecpython中&的具体含义和使用场景
开发语言·python
云栖梦泽2 小时前
易语言中小微企业Windows桌面端IoT监控与控制
开发语言
数据大魔方2 小时前
【期货量化实战】日内动量策略:顺势而为的短线交易法(Python源码)
开发语言·数据库·python·mysql·算法·github·程序员创富
奋进的芋圆3 小时前
Java 延时任务实现方案详解(适用于 Spring Boot 3)
java·spring boot·redis·rabbitmq
sxlishaobin3 小时前
设计模式之桥接模式
java·设计模式·桥接模式
Edward.W3 小时前
Python uv:新一代Python包管理工具,彻底改变开发体验
开发语言·python·uv
小熊officer3 小时前
Python字符串
开发语言·数据库·python
model20053 小时前
alibaba linux3 系统盘网站迁移数据盘
java·服务器·前端