Feign是Netfix开发的声明式、模块化的HTTP客户端,其灵感来自于Retrofit、JAXRS-2.0以及websocket。Feign可以帮我们更加便捷、优雅地调用HTTP API。这句话可能有点难理解。
我学这个框架,要明白它是干啥的,有什么用,Spring Cloud为什么引用这个模块?
Feign封装了Http调用调用流程,让调用更加面向接口化
解释过来就是在以前服务调用的场景中吗,调用基于http协议的服务。而我们经常使用到的框架可能有HttpURLConnection、Apache HttpComponnets、OkHttp3 、RestTemplate等等,这些框架在基于自身的专注点提供了自身特性。而从角色划分上来看,他们的职能是一致的提供Http调用服务。
而Feign的使用是创建一个接口,在接口上添加一些注解,代码就完成了。通过注解的方式令服务间的调用更加的容易简便
- HttpURLConnection HttpURLConnection是Java的标准类,继承UrlConnection,可用于向指定网站发送get,post请求。
- Apache HttpComponnets Apache HttpComponnets就是Httpclient,HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 Http 协议的客户端编程工具包,并且它支持 HTTP 协议最新版本和建议。
- OkHttp3 一个处理网络请求的开源项目,是安卓端最火的轻量级框架,由 Square 公司贡献,用于替代 HttpUrlConnection 和 Apache HttpClient。OkHttp 拥有简洁的 API、高效的性能,并支持多种协议(HTTP/2 和 SPDY)
- RestTemplate RestTemplate 是 Spring 提供的用于访问 Rest 服务的客户端,RestTemplate 提供了多种便捷访问远程 HTTP 服务的方法,能够大大提高客户端的编写效率。