前言

读者:对spring、spring boot有一定了解

难度:初中级,旨在快速应用于项目

参考文献:网络、书籍、官方文档,有任何错误欢迎大家留言拍砖指正

实战模拟源码:https://github.com/yhqnh/demo-springcloud,使用spring-cloud dalston版本


Spring cloud feign基于Netflix feign实现,整合了spring cloud ribbonspring cloud hystrix,除了提供这两者的强大功能之外,它还提供了一种声明式的web服务客户端定义方式

新建spring boot工程并命名为demo-springcloud-feign-consumer,新建启动类FeignApplication,通过@ EnableFeignClients注解来开启spring cloud feign的功能支持

干货分享微服务spring-cloud(5.声明式服务调用feign)_第1张图片

定义YhqService接口,通过@FeignClient注解指定服务名demo-springcloud-client来绑定服务,然后使用spring mvc的注解来绑定具体该服务提供者提供的rest接口

干货分享微服务spring-cloud(5.声明式服务调用feign)_第2张图片

项目关键依赖与配置spring-cloud-starter-feign提供feign支持

干货分享微服务spring-cloud(5.声明式服务调用feign)_第3张图片

启动注册中心,启动服务提供者12,启动feign消费者demo-springcloud-feign-consumer,浏览器访问http://localhost:3332/feignConsumer

image.png

image.png

下面我们为服务提供端12增加一个带参数的接口helloParam分别返回字符串“helloParam1+参数“或“helloParam2+参数“

干货分享微服务spring-cloud(5.声明式服务调用feign)_第4张图片

干货分享微服务spring-cloud(5.声明式服务调用feign)_第5张图片

在feign接口YhqService绑定helloParam接口,注意这里的@RequestParam不能省略

干货分享微服务spring-cloud(5.声明式服务调用feign)_第6张图片

浏览器访问http://localhost:3332/feignConsumerParam?name=test验证结果

image.png

image.png