如何查看Spring创建/生成什么接口实现InvocationHandler然后创建代理对象?
代理对象有一个构造函数,用这个实现调用
public Proxy(InvocationHandler paramInvocationHandler) {
super(paramInvocationHandler);
}
JDKdynamicAopProxy 是 InvocationHandler 的实现。这是创建代理对象的常规方法。
public Object getProxy(ClassLoader classLoader) {
if (logger.isDebugEnabled()) {
logger.debug("Creating JDK dynamic proxy: target source is " + this.advised.getTargetSource());
}
Class[] proxiedInterfaces = AopProxyUtils.completeProxiedInterfaces(this.advised);
findDefinedEqualsAndHashCodeMethods(proxiedInterfaces);
return Proxy.newProxyInstance(classLoader, proxiedInterfaces, this);
}
只需使用 classLoader、interfaces、InvocationHandler 调用 Proxy 的 args 方法。