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")



相关推荐
皮皮林5512 小时前
Java性能调优黑科技!1行代码实现毫秒级耗时追踪,效率飙升300%!
java
冰_河2 小时前
QPS从300到3100:我靠一行代码让接口性能暴涨10倍,系统性能原地起飞!!
java·后端·性能优化
桦说编程5 小时前
从 ForkJoinPool 的 Compensate 看并发框架的线程补偿思想
java·后端·源码阅读
躺平大鹅7 小时前
Java面向对象入门(类与对象,新手秒懂)
java
初次攀爬者8 小时前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
花花无缺8 小时前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
Derek_Smart9 小时前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
NE_STOP10 小时前
MyBatis-mybatis入门与增删改查
java
孟陬13 小时前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端