Feign-基于Feign远程调用
Feign遠(yuǎn)程調(diào)用
先來看我們以前利用RestTemplate發(fā)起遠(yuǎn)程調(diào)用的代碼:
存在下面的問題:
?代碼可讀性差,編程體驗(yàn)不統(tǒng)一
?參數(shù)復(fù)雜URL難以維護(hù)
Feign是一個(gè)聲明式的http客戶端,官方地址:GitHub - OpenFeign/feign: Feign makes writing java http clients easier
其作用就是幫助我們優(yōu)雅的實(shí)現(xiàn)http請求的發(fā)送,解決上面提到的問題。
?
Feign替代RestTemplate
Fegin的使用步驟如下:
1)引入依賴
我們在order-service服務(wù)的pom文件中引入feign的依賴:
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>2)添加注解
在order-service的啟動類添加注解開啟Feign的功能:
3)編寫Feign的客戶端
在order-service中新建一個(gè)接口,內(nèi)容如下:
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable;@FeignClient("userservice") public interface UserClient {@GetMapping("/user/{id}")User findById(@PathVariable("id") Long id); }這個(gè)客戶端主要是基于SpringMVC的注解來聲明遠(yuǎn)程調(diào)用的信息,比如:
-
服務(wù)名稱:userservice
-
請求方式:GET
-
請求路徑:/user/{id}
-
請求參數(shù):Long id
-
返回值類型:User
這樣,Feign就可以幫助我們發(fā)送http請求,無需自己使用RestTemplate來發(fā)送了。
4)測試
修改order-service中的OrderService類中的queryOrderById方法,使用Feign客戶端代替RestTemplate:
?是不是看起來優(yōu)雅多了。
5)總結(jié)
使用Feign的步驟:
① 引入依賴
② 添加@EnableFeignClients注解
③ 編寫FeignClient接口
④ 使用FeignClient中定義的方法代替RestTemplate
總結(jié)
以上是生活随笔為你收集整理的Feign-基于Feign远程调用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nacos配置管理-nacos集群搭建
- 下一篇: Feign-自定义配置