项目版本
<spring-boot.version>2.3.0.RELEASE</spring-boot.version> <spring-cloud.version>Hoxton.SR4</spring-cloud.version> <spring-cloud-alibaba.version>2.2.1.RELEASE</spring-cloud-alibaba.version>
今天使用openfeign服务间调用遇到一个很奇怪的问题,我新建了一个专门feign调用的包用来转发服务间调用的请求,项目结构如下
provider配置如下:
其他类调用这个provider采用自动注入的方式
就是这里我编译的时候没问题,但是项目跑起来报错,找不到bean。
解决办法
需要在启动类添加
@EnableFeignClients(basePackages = "com.cn.geostar.api.*")
这个这个包指向feignclient的类路径。
题外话:
建项目导包的时候如果不小心有可能会出现下面的问题
No Feign Client for loadBalancing defined.
Did you forget to include spring-cloud-starter-netflix-ribbon?
从错误中看到,说的是我们是不是忘记引入spring-cloud-starter-netflix-ribbon
包了,检查一下pom文件,发现是因为少了服务注册中心
的包和配置(谁给我干掉了,气死我了),这里面包含了ribbon。
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
好了可以愉快的玩耍了!