上一篇《學習AOP之認識一下SpringAOP》中大體的了解了代理、動態(tài)代理及SpringAop的知識。因為寫的篇幅長了點所以還是再寫一篇吧。接下來開始深入一點Spring aop的一些實現(xiàn)機制。
上篇中最后有那段代碼使用了一個ProxyFactory類來完成代理的工作,從而實現(xiàn)了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(); // 創(chuàng)建代理工廠 proxyFactory.setTarget(new SayImpl()); // 射入目標類對象 proxyFactory.addAdvice(new SayImplAroundAdvice());
ISay say = (ISay) proxyFactory.getProxy();
say.say();
}
}
那么接下來就聊聊ProxyFactory吧,看看它都干了些啥。
1、ProxyFactory的奧秘
繼續(xù)看上面的代碼只用了5行,這里面意思也非常明確,只有在第4行的時候有一個getProxy的方法并轉換為ISay接口??磥泶韺ο蟮膩碓纯梢詮乃胧至?。