Proxy:代理接口,Object doProxy(ProxyChain proxyChain)执行链式代理,多个代理同个链串起来,一个一个执行。
ProxyChain:代理链,用ArrayList<Proxy>封装,定义了目标类,目标对象,目标方法,方法代理,方法参数,代理列表, 代理索引,当代理索引小于代理列表上限,就从代理列表中取出对象的Proxy对象,调用其doProxy(ProxyChain proxyChain) 方法,Proxy接口的具体实现提供横切逻辑并调用proxyChain的doProxyChain()方法,直到代理索引达到代理列表上限为止, 若代理索引达到代理列表上限,doProxyChain()会调用方法代理的invokeSuper(targetObject, methodParams)方法执行 目标对象的业务逻辑。
ProxyManager:代理管理器,提供创建代理对象的方法,输入一个目标类和一组Proxy接口实现,输出一个代理对象。 使用CGlib提供的Enhancer#create方法创建代理对象,将intercept的方法参数传入ProxyChain构造器
AspectProxy:抽象切面代理,实现Proxy接口,提供模版方法,
AopHelper:加载AOP