前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【以解决】项目使用feign时候提示bean不能注入feign

【以解决】项目使用feign时候提示bean不能注入feign

作者头像
凯哥Java
发布2022-12-16 20:15:33
8900
发布2022-12-16 20:15:33
举报
文章被收录于专栏:凯哥Java凯哥Java

在项目中使用feign,将feign相关的功能抽取到了feign-api项目中。修改了pom引用,也导入包都对。但是在启动的时候报找到不feign对应的bean。如下图:

5f8b74126955de6c917bfd93f01fd7da.png
5f8b74126955de6c917bfd93f01fd7da.png

修改前的配置:

7093b3718c1897f37189f64f947659c1.png
7093b3718c1897f37189f64f947659c1.png

这个userclient就在当前服务中。启动类上也开启了feign注解。如下图

666a55f83a64c5a659b4159efaf5b687.png
666a55f83a64c5a659b4159efaf5b687.png

可以正常访问。当把feign对应的抽取到feign-api之后,就启动不了了。

问题原因:

根据提示信息,说明当前的com.kaigejava.feign.clients.UserClient这个没有被spring管理。

这是因为UserClient现在在cn.kaigejava.feign.clients包下,

而order-service的@EnableFeignClients注解是在cn.kaigejava.order包下,不在同一个包,无法扫描到UserClient。

有两种方式解决:

解决扫描包问题

方式一:

指定Feign应该扫描的包:

代码语言:javascript
复制
@EnableFeignClients(basePackages = "cn.kaigejava.feign.clients")

方式二:

指定需要加载的Client接口:

代码语言:javascript
复制
@EnableFeignClients(clients = {UserClient.class})

两种方式的区别:

方式一:会扫描指定包下的所有类。比如还有A\B\C三个类。但是目前我order服务只是使用到了user服务的其他三个类的服务不需要。所以,本着最简单凡是。选择方式二.修改后如下:

daa049e151d2eb189a5f6bee215add28.png
daa049e151d2eb189a5f6bee215add28.png

重启。服务。

ff9d4b7bd461eec20f23eaa6379e851b.png
ff9d4b7bd461eec20f23eaa6379e851b.png

访问,访问正常。OK。解决

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-10-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决扫描包问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档