@FeignClient @Resource 无法注入Bean Springboot无法启动
原因:
调用的服务生产者接口带有@PathVariable
@FeignClient 注明的接口应该在@PathVariable注明变量名 @PathVariable(value = "xxxx"),不可省略
Feign 工作原理如下
1、 启动类添加@EnableFeignClients注解,Spring会扫描标记了@FeignClient注解的接口,并生成此接口的代理
对象
2、 @FeignClient(value = Eureka的服务名称),Feign会从注册中
心获取cms服务列表,并通过负载均衡算法进行服务调用。
3、在接口方法 中使用注解@GetMapping("/服务的方法路径"),指定调用的url,Feign将根据url进行远程调
Feign注意点
SpringCloud对Feign进行了增强兼容了SpringMVC的注解 ,我们在使用SpringMVC的注解时需要注意:
1、feignClient接口 有参数在参数必须加@PathVariable("XXX")和@RequestParam("XXX")
2、feignClient返回值为复杂对象时其类型必须有无参构造函数。
参考:PathVariable annotation was empty on param 0 - 寒冷的雨呢 - 博客园 (cnblogs.com)
参考:https://blog.csdn.net/weixin_43333483/article/details/99219156
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步