上一篇《学习AOP之认识一下SpringAOP》中大体的了解了代理、动态代理及SpringAop的知识。因为写的篇幅长了点所以还是再写一篇吧。接下来开始深入一点Spring aop的一些实现机制。
上篇中最后有那段代码使用了一个ProxyFactory类来完成代理的工作,从而实现了Aop的Around Advice,代码如下:
package aop.demo; import org.springframework.aop.framework.ProxyFactory; public class ClientCode { public static void main(String[] args) {
ProxyFactory proxyFactory = new ProxyFactory(); // 创建代理工厂 proxyFactory.setTarget(new SayImpl()); // 射入目标类对象 proxyFactory.addAdvice(new SayImplAroundAdvice());
ISay say = (ISay) proxyFactory.getProxy();
say.say();
}
}
那么接下来就聊聊ProxyFactory吧,看看它都干了些啥。
1、ProxyFactory的奥秘
继续看上面的代码只用了5行,这里面意思也非常明确,只有在第4行的时候有一个getProxy的方法并转换为ISay接口。看来代理对象的来源可以从它入手了。

