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客户端实例

推荐阅读