博客
关于我
Fegin
阅读量:310 次
发布时间:2019-03-04

本文共 1005 字,大约阅读时间需要 3 分钟。

Fegin是一个声明式的HTTP调用框架。为什么是声明式的呢,其实在我们开发过程中一般都是声明一个接口,用@FeginClient标识,接口中的方法与调用方Controller保持一致,如参数,SpringMVC注解这样的。Fegin底层的调用方式是基于HTTP的,默认是使用JDK自带的通信框架,一般可以用HttpClient或OkHttp来进行替换Fegin底层的通信方式,引入pom,在yml文件开启即可。@FeginClient有很多参数,如url是指定服务的调用地址({url:https%3A//网页链接),value是服务在注册中心的名称,primary是指定该实现类的优先级,fegin是会自己生成代理类的,且primary默认是true的方式,这样是表明fegin自己生成的子类是优先级最高的,如果我们要自己写实现类,是会报错误的,所以primary是要做调整的。configuration是用来指定配置类的,fegin的配置类可以分为全局配置和局部配置,具备配置就是在@FeignClient参数中指定configuartion即可。Path属性是指定统一前缀的意思。Fegin可以轻而易举的集成ribbon和hystrix,ribbon是一个客户端的负载均衡工具,ribbon内部又集成了eureka注册中心,可以拿到注册中心服务的一些信息,从而进行一些负载算法对服务的调用。Fegin也支持请求压缩,请求数据过大时可以考虑对数据进行压缩,提高数据传输效率。Fegin也支持继承,开发方式controller和fegin接口都实现了同一个接口类,可以减少很多模板代码。fegin默认是不支持文件传输的,如果想要支持文件出传输,需要引入一些其他的依赖,fegin-from fegin-from-spring,并且为该fegin替换SpringFromEncoder编码器,才可以进行feign的文件传输。Fegin的底层其实就是基于动态代理+RestTemplate对我们声明的接口及方法,url+参数拼接,在返回数据的时候可以根据我们声明的返回类型去做转换,如果你的returnType指定为String,就会给你转成String,如果你指定其他实体,fegin也会帮你转换,但前提是合理的情况下,否则就会报错,当然你也可以直接用Fegin提供的Response来接收,然后自己做处理。

转载地址:http://jelq.baihongyu.com/

你可能感兴趣的文章
系统架构
查看>>
网关程序的开发
查看>>
变量命名的通用规则
查看>>
鸡啄米之VS2010/MFC编程入门之三十一(常用控件:树形控件Tree Control 下)
查看>>
程序员职业划分
查看>>
六祎-Photoshop快捷键
查看>>
【六袆-Java】哈希算法内存图;set集合低层采用哈希表存储元素;哈希算法的流程
查看>>
转---原码,反码,补码的深入理解与原理。
查看>>
【浅谈】main函数的三个参数
查看>>
函数指针
查看>>
Ubuntu安装软件以及查看已安装软件的几种方式
查看>>
ubuntu18.04利用fdisk找到磁盘空闲区,新建分区,挂载
查看>>
STL教程:C++ STL快速入门(非常详细)
查看>>
【论文泛读03】卷积LSTM网络:一种短时降雨量预测的机器学习方法
查看>>
中科大-凸优化 笔记(lec45)-强凸性等价不等式
查看>>
【论文泛读29】关系抽取:卷积神经网络的视角
查看>>
【学习笔记】欧拉函数,欧拉公式
查看>>
Python3序列
查看>>
React中设置404页面
查看>>
vue调试工具vue-devtools安装及使用
查看>>