4.1 什么是Feign?
Feign 是 Spring Cloud Netflix 组件中的一个轻量级 RESTful 的 HTTP 服务客户端,实现了负载均衡和 Rest 调用的开源框架,封装了 Ribbon 和 RestTemplate,实现了 WebService 的面向接口编程,进一步降低了项目的耦合度。文章转载自乐字节
Feign 内置了 Ribbon,用来做客户端负载均衡调用服务注册中心的服务。
Feign 本身并不支持 Spring MVC 的注解,它有一套自己的注解,为了更方便的使用,Spring Cloud 孵化了 OpenFeign。
Feign 是一种声明式、模板化的 HTTP 客户端(仅在 Consumer 中使用)。
Feign 的使用方式是:使用 Feign 的注解定义接口,调用这个接口,就可以调用服务注册中心的服务。 前面使用RestTemplate结合Ribbon方式实现负载均衡时,利用RestTemplate
前面使用餐厅模板结合方式实现负载均衡时,利用餐厅模板对HTTP请求进行封装处理,从而实现一套模板化的调用方法。但是在实际开发中,由于对服务依赖的调用不止一-处,往往一个接口会被多个地方调用,所以通常会对每个微服务自行封装一一些客 户端类用于包装依赖服务的调用。SpringCloud对Feign进行了封装,它能够使服务之间的调用变得更加简单。
在第一个Feign程序与参数绑定的开发中,可能同学们已经观察到很多代码
是重复的。在Spring Cloud Feign开发中,能够使用继承特性来帮助我们解决这
些代码的重复问题,进一-步减少编码量。接下来,我们在参数绑定案例程序的基础上继续改造,对Feign的继承特性进行介绍。
1、在客户端添加依赖,所需依赖如下
<dependency>
<groupId>org.springframework.cloud