Feign 系列(02)Why Feign

时间:2019-09-21
本文章向大家介绍Feign 系列(02)Why Feign,主要包括Feign 系列(02)Why Feign使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Feign 系列(02)Why Feign

1. 什么是 Feign

Feign 的英文表意为“假装,伪装,变形”, 是一个 Http 请求调用的轻量级框架,可以以 Java 接口注解的方式调用 Http 请求,而不用像 Java 中通过封装 HTTP 请求报文的方式直接调用。

Feign 通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求,这种请求相对而言比较直观。

Feign 被广泛应用在 Spring Cloud 的解决方案中,是学习基于 Spring Cloud 微服务架构不可或缺的重要组件。

Feign 开源项目地址:https://github.com/OpenFeign/feign

2. Feign解决了什么问题

2.1 封装 HTTP 调用流程,面向接口编程

在服务调用的场景中,我们经常调用基于 Http 协议的服务,而我们经常使用到的框架可能有HttpURLConnection、Apache HttpComponnets、OkHttp3 、Netty 等等,这些框架在基于自身的专注点提供了自身特性。而从角色划分上来看,他们的职能是一致的提供 Http 调用服务。具体流程如下:

客户端 -> Client框架: 构建请求行 客户端 -> Client框架: 构建请求头 客户端 -> Client框架: 构建请求体 Client框架 -> 服务端: 发送Http请求 服务端 --> Client框架: 返回报文 Client框架 --> 客户端: 提取报文信息,解析成JavaBean

2.2 兼容各种 REST 声明式规范

JAX-RS、Feign、Spring Cloud Open Feign、Spring Web MVC注解驱动特性。

REST框架 使用场景 请求映射注解 请求参数
JAX-RS 客户端声明、
服务端声明
@Path @*Param
Feign 客户端声明 @RequestLine @Param
Spring Cloud Open Feign 客户端声明 @ReqeustMapping @RequestParam
Spring Web MVC 服务端声明 @ReqeustMapping @RequestParam

原文地址:https://www.cnblogs.com/binarylei/p/11561456.html