原因:
呼叫的服務生產者介面帶有@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