Spring Cloud聲明式調用Feign客戶端實例

本文將講解若何利用RestTemplate來消費辦事 , 若何連系Ribbon在消費辦事時做負載平衡 。 接下來將周全講解Feign , 包羅若何利用Feign來長途調劑其他辦事、FeignClient的各項具體設置裝備擺設 , 并從源碼的角度深切講解Feign 。

需要這些哦
Java情況
idea/eclipse
maven
方式/
1【Spring Cloud聲明式調用Feign客戶端實例】Feign受Retrofit、JAXRS-2.0和WebSocket的影響 , 采用了聲明式API接口氣概 , 將Java http客戶端綁定到它的內部 。 Feign的首要方針是將Java http客戶端的挪用變得簡單 。

2新建一個Springboot的Moudle工程 , 取名為eureka-feign-client 。 起首 , 在工程的pom文件中插手相關的依靠 , 包羅擔當了本家兒maven工程的pom文件、Feign的起步依靠spring-cloud-starter-feign、EurekaClient的起步依靠spring-cloud-starter-eureka、Web功能的起步依靠spring-boot-starter-web , 以及Spring boot測試的起步依靠spring-boot-starter-test , 代碼如下:

Spring Cloud聲明式調用Feign客戶端實例



3引入這些依靠之后 , 在工程的設置裝備擺設文件application.yml做相關的設置裝備擺設 , 包羅設置裝備擺設法式名為eureka-feign-client , 端標語8765 , 辦事注冊地址為 http://localhost:8761/eureka/ , 代碼如下:

Spring Cloud聲明式調用Feign客戶端實例



4在法式的啟動類EurekaFeignClientApplication加上注解@EnableEurekaClient開啟eureka client的功能 , 經由過程注解@EnableFeignClients開啟Feign Client的功能 , 代碼如下:

Spring Cloud聲明式調用Feign客戶端實例



5經由過程以上3個
, 該法式就具備了Feign的功能 , 此刻來實現一個簡單的FeignClient 。 新建一個EurekaFeignClient的接口 , 在接口上加上@FeignClient注解來聲明一個FeignClient , 此中value為長途挪用其它辦事的辦事名 , FeignConfig.class為FeignClient的設置裝備擺設類 。 在EurekaFeignClient接口內部有一個sayHiFromClientEureka()方式 , 該方式經由過程Feign來挪用eureka-client辦事的“/hi”的API接口 , 代碼如下:

Spring Cloud聲明式調用Feign客戶端實例



6在FeignConfig類上加上@Configuration注解 , 表白該類是一個設置裝備擺設類 , 并注入了一個BeanName為feignRetryer的Retryer的Bean 。 注入該bean后 , Feign在長途挪用掉敗后會進行重試 。 代碼如下:

Spring Cloud聲明式調用Feign客戶端實例



7在Service層的HiService類注入EurekaFeignClient的bean , 經由過程EurekaFeignClient去挪用sayHiFromClientEureka()方式 , 代碼如下:

Spring Cloud聲明式調用Feign客戶端實例



8在HiController類上加上@RestController注解 , 開啟RestController的功能 , 寫一個API接口“/hi” , 在該接口挪用了HiService的sayHi()方式 。 HiService經由過程EurekaFeignClient長途挪用eureka-client辦事的API接口“/hi” 。 代碼如下:

Spring Cloud聲明式調用Feign客戶端實例

猜你喜歡