1. 程式人生 > >微服務通過EnableFeignClients呼叫其他服務的api

微服務通過EnableFeignClients呼叫其他服務的api

專案中需要通過當前service服務要呼叫到其他service服務的api介面時,可通過EnableFeignClients呼叫其他服務的api,大概的步驟如下:

1、在springboot的main處加上註解@EnableFeignClients

 

 1 @EnableDiscoveryClient
 2 @SpringBootApplication
 3 @EnableFeignClients
 4 public class MyServiceApplication {
 5 
 6     public static void main(String[] args){
 7         SpringApplication.run(MyServiceApplication.class, args);
 8     }
 9 
10 }

 

 

2、在service層上實現介面,這裡注意value可以用serviceId代替,但是最好用value來指定要呼叫的服務。

      fallback是當程式錯誤的時候來回調的方法

      方法中要用@PathVariable要註解引數

1 @FeignClient(value = "other-service", fallback = ExampleFeignClientFallback.class)
2 public interface ExampleFeignClient {
3     @RequestMapping(value = "/v1/exampleId/{id}",method = RequestMethod.GET)
4     Long queryById(@PathVariable(name="id") Long id);
5 }


3、編寫程式錯誤時的回撥類,實現介面,在錯誤時回撥

 

1 @Service
2 public class ExampleFeignClientFallback implements ExampleFeignClient {
3     @Override
4     public Long queryById(Long id) {
5         return null;
6     }
7 }

 

4、呼叫該服務

 

1 //宣告,自動封裝
2 @Autowired
3 private ExampleFeignClient ExampleFeignClient;
4 
5 
6 //呼叫
7 Long result = ExampleFeignClient.queryById(id);

 

至此,完成整個步驟