0、结构图
1、相关接口
1.1 Logger接口
基于工厂方法设计
1.2 Encoder接口
主要是做发送rest请求的编码
1.3 Decoder接口
主要是做rest响应的解码
1.4 Contract接口
主要是解析接口上的元数据,如类、方法上、参数上的注解
parseAndValidateMetadata:是Contract的接口方法,用于解析和校验元数据
BaseContract:是Contract的抽像实现类,实现了parseAndValidateMetadata方法,在解析过程上中,同时暴露三个抽象方法让子类来实现,processAnnotationOnClass用于处理类上注解,processAnnotationOnMethod用于处理方法上的注解,processAnnotationsOnParameter处理方法参数上的注解
1.5 Retry接口
主要是处理请求失败时的重试机制
1.6 ErrorDecoder接口
处理出错时的解码,也使用了工厂方法模式
1.7 RequestInterceptor接口
主要请求时的拦截器,作些功能增强
1.8 Target接口
请求目标接口
1.9 Targeter接口
根据Feign.Buidler来创建Target
1.10 Client接口
1.11 Feign抽象
1.12 InvocatinHandler接口
对应接口中的一个方法调用
参考资料: