spring cloud使用Feign實現遠端介面的呼叫
阿新 • • 發佈:2019-02-15
在開發中,我們常用httpClient去遠端呼叫其他系統的介面,一般情況下,需要我們指定呼叫的url,feign也實現了一套遠端呼叫的方法,並且更為優雅。
1.新增依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
2.建立FeignClient介面(用於指定遠端呼叫的服務)
// 申明這是一個Feign客戶端,並且指明服務id
@FeignClient(value = "com-spring-caclulate")
public interface CacluFeignClient {
// 這裡定義了類似於SpringMVC用法的方法,就可以進行RESTful的呼叫了
@RequestMapping(value = "/caclu/{num}", method = RequestMethod.GET)
public Item caclulate(@PathVariable("num") Integer num);
}
注意:這裡就是一個介面。
3.在需要進行遠端呼叫的方法裡注入該介面,並呼叫對應的api介面方法
@Autowired
private CacluFeignClient cacluFeignClient ;
@GetMapping(value = "query/result")
public Integer caclulate() {
cacluFeignClient.caclulate(1);
}
4.在啟動類上添加註解 @EnableFeignClients,表示支援Feign
FeignClient介面和spring mvc介面的格式一致,在呼叫方的方法中,我們只需要呼叫本系統中定義的介面即可。