?
本文檔使用 PHP中文網(wǎng)手冊(cè) 發(fā)布
使用Spring通過編程創(chuàng)建AOP代理是很容易的。這使你可以使用Spring AOP而不必依賴于Spring IoC。
下面的清單顯示了如何使用一個(gè)攔截器和一個(gè)通知器來為一個(gè)目標(biāo)對(duì)象來創(chuàng)建一個(gè)代理。目標(biāo)對(duì)象實(shí)現(xiàn)的接口將被自動(dòng)代理:
ProxyFactory factory = new ProxyFactory(myBusinessInterfaceImpl); factory.addInterceptor(myMethodInterceptor); factory.addAdvisor(myAdvisor); MyBusinessInterface tb = (MyBusinessInterface) factory.getProxy();
第一步是創(chuàng)建一個(gè)類型為org.springframework.aop.framework.ProxyFactory
的對(duì)象。
你可以像上面例子里那樣使用一個(gè)目標(biāo)對(duì)象來創(chuàng)建它,或者在一個(gè)可選的構(gòu)造器里說明需要被代理的接口。
你可以添加攔截器或通知器,并在ProxyFactory的生命周期里操作它們。如果你加入一個(gè)IntroductionInterceptionAroundAdvisor,你可以讓代理實(shí)現(xiàn)額外的接口。
在ProxyFactory里也有很方便的方法(繼承自AdvisedSupport
)允許你加入其它的通知類型例如前置和異常通知。
AdvisedSupport是ProxyFactory 和ProxyFactoryBean的共同父類。
在大多數(shù)應(yīng)用程序里,把AOP代理的創(chuàng)建和IoC框架集成是最佳實(shí)踐。通常情況下我們推薦你在Java代碼外進(jìn)行AOP的配置。