贵阳做网站kuhugz/一个新手怎么去运营淘宝店铺
springCloud环境搭建采坑记录之-FeignClient错误解决
- 项目结构
- 整体结构:SpringCloud-Alibaba
- 注册中心:nacos
- 版本依赖:
- 错误1:
- 错误原因:
- 错误2:
- 原因:spring的负载均衡不再使用ribbon,而是用spring-cloud-loadbalancer,但是nacos又默认依赖了ribbon,
项目结构
整体结构:SpringCloud-Alibaba
注册中心:nacos
版本依赖:
<spring.cloud.version>2020.0.0</spring.cloud.version><spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version><spring-boot.version>2.4.2</spring-boot.version>
参考地址:https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md
错误1:
***************************
APPLICATION FAILED TO START
***************************Description:Field applyDemoFeignService in com.hdwater.engin.demo.main.service.impl.EnginServiceImpl required a bean of type 'com.hdwater.apply.demo.service.ApplyDemoFeignService' that could not be found.The injection point has the following annotations:- @org.springframework.beans.factory.annotation.Autowired(required=true)Action:Consider defining a bean of type 'com.hdwater.apply.demo.service.ApplyDemoFeignService' in your configuration.
错误原因:
依赖了feignClient的工程后,因为没有在@EnableFeignClients注解中添加basePackages参数,导致Spring ioc不能正确扫描bean文件。解决方法,再启动类上的EnableFeignClients注解中添加basePackages如下:
@EnableFeignClients(basePackages = "com.hdwater")
错误2:
No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalancer?
No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalancer?
原因:spring的负载均衡不再使用ribbon,而是用spring-cloud-loadbalancer,但是nacos又默认依赖了ribbon,
解决方法:
nacos官方文档提到要禁用ribbon,只是不明显,,,
在pom依赖中排除ribbon的依赖,添加spring-cloud-loadbalancer
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><exclusions><exclusion><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-ribbon</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId></dependency>
解决问题,完美运行