干货分享微服务spring-cloud(5.声明式服务调用feign)
2018-02-13 15:22
1336 查看
Spring cloud feign基于Netflix feign实现,整合了spring cloud ribbon与spring cloud hystrix,除了提供这两者的强大功能之外,它还提供了一种声明式的web服务客户端定义方式
新建spring boot工程并命名为demo-springcloud-feign-consumer,新建启动类FeignApplication,通过@ EnableFeignClients注解来开启spring cloud feign的功能支持
![](http://s1.51cto.com/images/20180213/1518506415888827.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
定义YhqService接口,通过@FeignClient注解指定服务名demo-springcloud-client来绑定服务,然后使用spring mvc的注解来绑定具体该服务提供者提供的rest接口
![](http://s1.51cto.com/images/20180213/1518506422106634.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
项目关键依赖与配置spring-cloud-starter-feign提供feign支持
![](http://s1.51cto.com/images/20180213/1518506431257190.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
启动注册中心,启动服务提供者1和2,启动feign消费者demo-springcloud-feign-consumer,浏览器访问http://localhost:3332/feignConsumer
![](http://s1.51cto.com/images/20180213/1518506442799283.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](http://s1.51cto.com/images/20180213/1518506450584668.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
下面我们为服务提供端1和2增加一个带参数的接口helloParam分别返回字符串“helloParam1+参数“或“helloParam2+参数“
![](http://s1.51cto.com/images/20180213/1518506467865179.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](http://s1.51cto.com/images/20180213/1518506480603544.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](http://s1.51cto.com/images/20180213/1518506510840503.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
浏览器访问http://localhost:3332/feignConsumerParam?name=test验证结果
![](http://s1.51cto.com/images/20180213/1518506531111087.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
新建spring boot工程并命名为demo-springcloud-feign-consumer,新建启动类FeignApplication,通过@ EnableFeignClients注解来开启spring cloud feign的功能支持
![](http://s1.51cto.com/images/20180213/1518506415888827.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
定义YhqService接口,通过@FeignClient注解指定服务名demo-springcloud-client来绑定服务,然后使用spring mvc的注解来绑定具体该服务提供者提供的rest接口
![](http://s1.51cto.com/images/20180213/1518506422106634.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
项目关键依赖与配置spring-cloud-starter-feign提供feign支持
![](http://s1.51cto.com/images/20180213/1518506431257190.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
启动注册中心,启动服务提供者1和2,启动feign消费者demo-springcloud-feign-consumer,浏览器访问http://localhost:3332/feignConsumer
![](http://s1.51cto.com/images/20180213/1518506442799283.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](http://s1.51cto.com/images/20180213/1518506450584668.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
下面我们为服务提供端1和2增加一个带参数的接口helloParam分别返回字符串“helloParam1+参数“或“helloParam2+参数“
![](http://s1.51cto.com/images/20180213/1518506467865179.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](http://s1.51cto.com/images/20180213/1518506480603544.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
在feign接口YhqService绑定helloParam接口,注意这里的@RequestParam不能省略
![](http://s1.51cto.com/images/20180213/1518506510840503.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
浏览器访问http://localhost:3332/feignConsumerParam?name=test验证结果
![](http://s1.51cto.com/images/20180213/1518506531111087.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](http://s1.51cto.com/images/20180213/1518506537376126.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
相关文章推荐
- SpringCloud零基础上手(四)——服务发现以及Feign(声明式RESTful服务调用)
- Spring Cloud Feign 声明式服务调用
- 【图文经典版】声明式调用服务SpringCloud之Feign实例讲解
- 【Spring Cloud】--声明式服务调用Feign
- SpringCloud之声明式服务调用Spring Cloud Feign实例
- spring cloud Feign(声明式服务调用)
- Spring Cloud 声明式服务调用 Feign
- 笔记:Spring Cloud Feign 声明式服务调用
- Spring Cloud 入门教程(六): 用声明式REST客户端Feign调用远端HTTP服务
- 第九章 Spring Cloud Feign声明式调用服务
- Spring Cloud中声明式服务调用Feign
- spring cloud : 简化远程调用 (声明式远程调用Feign)
- springcloud使用feign实现服务间条用,参数数据太大,无法调用成功解决方法
- 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
- 干货分享微服务spring-cloud(3.服务治理eureka)
- 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
- 使用Spring cloud Feign在后台服务之间调用传递Multipart无法传递的问题
- 关于Dalston.SR3版本的spring cloud,用feign客户端调用服务hystrix不能生效的问题
- 2、springcloud微服务:基于Feign的服务调用
- 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务的方法(推荐)