Springboot統合feign


1、jarパッケージ依存

    org.springframework.cloud
    spring-cloud-starter-openfeign


2、起動クラスに注釈を追加する
AがBサービスを調整する場合、Aサービス起動クラスは注釈を追加する必要がある
@EnableFeignClients(feignインタフェースをスキャンするため)プロパティ:basePackageClassスキャンクラスbasePackagesスキャンパッケージ@EnableFeignClients(basePackageClass=RegistryServices.class,basePackages="com.wzj.feign")
3、呼び出し方式
A調Bの第1の方式で、直接url呼び出しnameはBサービスのためにつけた名前で、必ず負けます.
@FeignClient(url = "http://192.168.20.11:8081", name = "web-socket-api", configuration = FeignConfiguration.class)
public interface WebSocketManageClient {
    @RequestMapping(value = "/message", method = RequestMethod.POST)
    void sendMessage(@RequestParam(value = "message") String message);

}

使用時
    @Autowired
    private WebSocketManageClient webSocketManageClient;
    
	webSocketManageClient.sendMessage(message);

第2の方法は、登録センターを使用することです.
valueの値は,Bサービスが登録センターに登録されたサービス名であり,nameの役割と同様である.nameとvalueは1つ存在する必要があります.
@FeignClient(value = "user-server")
public interface UserFeign {
    @GetMapping(value = "/user/getUserById")
  	User getUserById(@RequestParam("id") String id) throws Exception;

4、問題点
ここで問題が発生しました.@RequestParamと@PathVariableはvalueプロパティを使用してエラーを報告していません.
エラー:Feign PathVariable annotation was empty on param 0
例:@RequestParam String id@PathVariable String idはvlueプロパティを使用し、デフォルト名を付けると@RequestParam(value="id")String idまたは@RequestParam(id)String id@PathVariable(value="id")String idまたは@PathVariable(id)String id