微服務通過EnableFeignClients呼叫其他服務的api
阿新 • • 發佈:2018-12-14
專案中需要通過當前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);
至此,完成整個步驟