feign的底层原理
时间: 2023-08-26 10:08:00 浏览: 90
回答: Feign的底层原理是基于JDK的动态代理实现的。无论是否需要负载均衡,都会通过targeter.target()方法创建动态代理对象。具体的调用栈是:Targeter.target()→DefaultTargeter.target()→Feign.Builder.target()→Feign.newInstance()→ReflectiveFeign.newInstance()。在newInstance方法中,会创建configKey→SynchronousMethodHandler的映射,用于处理用户定义的FeignClient接口中的方法。如果是接口中的default方法,则会创建DefaultMethodHandler并添加进defaultMethodHandlers列表和methodToHandler映射中。最终,创建InvocationHandler核心代理对象,代理逻辑都封装在该对象中。在代理过程中,会根据方法名称dispatch到对应的MethodHandler进行处理。\[1\]\[2\]\[3\]
#### 引用[.reference_title]
- *1* *3* [Feign底层原理分析-自动装载&动态代理](https://blog.csdn.net/Mr_Xu12308/article/details/124901407)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [【第四章】详解Feign的实现原理](https://blog.csdn.net/weixin_42039228/article/details/123714356)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文