SpringCloud - Feign 源码

SpringCloud - Feign 源码
SpringCloud - Feign 源码
SpringCloud - Feign 源码
跟 mybatis 差不多,在 FeignClientFactoryBean 对有@FeignClient 注解的接口生成接口的代理 FeignClientFactoryBean 实现了 factoryBean 接口,里面有 getObject 方法
SpringCloud - Feign 源码
SpringCloud - Feign 源码
SpringCloud - Feign 源码
最终会生成有@FeignClient 注解的接口的代理 所以 Controller 中获取到代理实例后,则会掉到 HystrixInvocationHandler 的 invoke 方法
SpringCloud - Feign 源码
SpringCloud - Feign 源码
还是走的 hystrix 那一套,最后会走到上面的 run 钩子方法中
SpringCloud - Feign 源码
在这个方法里面获取服务列表类进行调用
SpringCloud - Feign 源码
SpringCloud - Feign 源码
SpringCloud - Feign 源码
和 hystrix 的分析是一样的