【17】MethodHandler方法处理器源码分析
文章目录
- 前言
- MethodHandler接口
- 流程分析
-
-
- 初始化
-
-
- 方法执行
前言
在之前的案例中,我们分析了注解扫描,加载Feign 接口信息为FactoryBean,然后通过动态代理加载到IOC中,
在动态代理的newInstance过程中,会使用契约Contract创建方法元数据(MethodMetadata),然后通过这些元数据为每个执行方法加载MethodHandler,接下来就具体分析下MethodHandler。

MethodHandler接口
MethodHandler接口非常简单,只有一个invoke方法,和JDK中的InvocationHandler#invoke类似,应该知道JDK中的动态代理,实现InvocationHandler后,代理对象执行时,实际执行的是其invoke方法,这里MethodHandler设计就是源于此,方法执行时,实际会调用MethodHandler的invoke方法。
/**
* Like {@link InvocationHandler#invoke(Object, java.lang.reflect.Method, Object[])}, except for a single method.
*/
interface MethodHandler {
Object invoke(Object[] argv) throws Throwable;
}
MethodHandler有两个实现类,分别为DefaultMethodHandler、SynchronousMethodHandler。
