Spring Cloud Feign
什么是Feign
Feign是Netflix公司开源的轻量级Rest客户端(Https://github.com/OpenFeign/feign ),使用 Feign 可以非常方便、简单的实现 Http 客户端,使用 Feign 只需要定义一个接口,然后在接口上添加注解即可。
Spring Cloud 对 Feign 进行了封装,Feign 默认集成了 Ribbon 实现了客户端负载均衡调用。
微服务间的调用就有两种方式:
- 通过微服务名称,获得服务的调用地址
- 通过接口+注解,获得服务的调用 ——Feign (为适应业界其它程序员提出的,还是遵循面向接口编程)
类似于以前Mapper接口上使用@Mapper注解进行标识,而使用Feign就只要在接口上标注@FeignClient注解。
Feign实战操作
新建 microservice-cloud-07-consumer-product-feign,参考microservice-cloud-04-consumer-product-
80,并拷贝microservice-cloud-04-consumer-product-
80*的pom文件、application.yml 与 java类路径 下的所有文件
修改主启动类名,ProductConsumer_80_Feign,添加启动注解
添加pom依赖
新建 ProductClientService 接口
修改ProductController_Feign
功能测试,发现正常访问且有负载均衡的功能
Feign注意事项
SpringCloud对Feign进行了增强兼容了SpringMVC的注解 ,我们在使用SpringMVC的注解时需要注意:
1、@FeignClient接口方法有基本类型参数在参数必须加@PathVariable(“XXX”) 或 @RequestParam(“XXX”)
2、@FeignClient接口方法返回值为复杂对象时,此类型必须有无参构造方法。