ProxyFactory

Spring定义了org.springframework.aop.framework.AopProxy接口,并提供了两个final类型的实现类。
AopProxy类结构:
Cglib2AopProxy使用CGLib动态代理技术创建代理,而JdkDynamicAopProxy使用JDK动态代理技术创建代理。
如果ProxyFactory的setInterfaces(Class[] interfaces)方法指定目标接口进行代理,则ProxyFactory使用JdkDynamicAopProxy;如果是针对类的代理,则使用Cglib2AopProxy。此外,还可以通过ProxyFactory的setOptimize(true)方法让ProxyFactory启动优化代理方式,这样,针对接口的代理也会使用Cglib2AopProxy。
 
ProxyFactory pf = new ProxyFactory();
pf.setInterfaces(target.getClass().getInterfaces());    //指定对接口进行代理
pf.setOptimize(true);    //启用优化,则ProxyFactory将使用Cglib2AopProxy代理,否则默认JDK代理
pf.setTarget(target);
pf.addAdvice(advice);
posted @ 2019-06-25 11:13  沟渠映明月  阅读(1062)  评论(0编辑  收藏  举报