1.什么是OpenFeign?
Feign是声明性的Web服务客户端。它使编写Web服务客户端更加容易。要使用Feign,创建一个接口并对其进行注释。它具有可插入注释支持,包括Feign注释和JAX-RS注释。Feign还支持可插拔编码器和解码器。Spring Cloud添加了对Spring MVC注释的支持,并支持使用HttpMessageConvertersSpring Web中默认使用的注释。Spring Cloud集成了Ribbon和Eureka以及Spring Cloud LoadBalancer,以在使用Feign时提供负载平衡的http客户端。
1.1.OpenFeign能干什么?
Feign是为了是编写Java Http变得更加容易,前面在使用Ribbon+RestTemplate时,利用RestTemplate对Http请求的封装处理,形成了一套模块化的调用方法。实际开发中,由于对服务依赖的调用不止一处,往往一处接口被多处调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。所以Feign在此基础上做了进一步封装,由它来帮助我们定义和实现依赖接口的定义。我们只需要创建一个接口,并使用注解的方式来配置它,即可完成对服务提供方的接口绑定。
1.2.Feign 和 OpenFeign的区别?
2.OpenFeign的使用
2.1 服务消费者:
① :在父工程下,新建Module : cloud-consumer-feign-order80
② :引入相关依赖:
<dependencies>
<!--openfeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--eureka-client-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--引入自己定义的api通用包,可以使用Payment支付Entity-->
<dependency>
<groupId>com.mk</groupId>
<artifactId>cloud-api-common