简介
Feign使得 Java HTTP
客户端编写更方便。Feign
灵感来源于Retrofit、JAXRS-2.0和WebSocket。Feign
最初是为了降低统一绑定Denominator 到 HTTP API
的复杂度,不区分是否支持 Restful
。
Maven依赖:
1 | <!-- https://mvnrepository.com/artifact/com.netflix.feign/feign-core --> |
为什么选择Feign而不是其他
你可以使用 Jersey
和 CXF
这些来写一个 Rest
或 SOAP
服务的java客服端。你也可以直接使用 Apache HttpClient
来实现。但是 Feign
的目的是尽量的减少资源和代码来实现和 HTTP API
的连接。通过自定义的编码解码器以及错误处理,你可以编写任何基于文本的 HTTP API
。
Feign工作机制
Feign通过注解注入一个模板化请求进行工作。只需在发送之前关闭它,参数就可以被直接的运用到模板中。然而这也限制了Feign,只支持文本形式的API,它在响应请求等方面极大的简化了系统。同时,它也是十分容易进行单元测试的。