在spring中,我們可以通過在配置文件中配置目標類,切面類,代理類來達到目的。首先要講的的是半自動代理。這種情況下,在配置文件中創建代理類時,需要配置以下幾個部分:
1.創建目標類
<bean id="目標類">
2.創建切面類
<bean id="切面類”>
3.創建代理類
<bean id="代理類">
其中需要配置幾個字段:
1).interfaces:確定目標類的接口類
2).target:確定目標類
3).interceptorNames:確定切面類
這樣一來,在使用applicationContext.getBean()時,我們需要得到的依然是代理類的名稱。
applicationContext.getBean("代理類");
我們將以上的AOP稱為半自動AOP代理。
那么,什么是全自動代理呢?全自動,也就是我們在配置文件中做好一切配置,獲得Bean的時候,只需要傳入目標類的名稱,spring就會自動根據配置文件來幫我們來生成代理對象,在我們書寫的代碼中,無需考慮具體細節。以下進行介紹。
首先是spring的配置文件。
這里我們需要加入schema約束,具體的寫法,可以參考spring文檔(xsd-config.html)。
接下來仍然分為三個部分:
1.創建目標類
2.創建切面類
3.AOP配置
詳細說一下3的配置。
<aop:config proxy-target-class="true">//聲明使用cglb代理
? ? ? ? ? <aop:pointcut expression="” id="">//切入點,從目標對象獲得具體方法,expression是切入點表達式,用于配置目標類中的連接點有哪些是切入點。關于切入點表達式,可 查詢相關資料。
? ? ? ? ? <aop:advisor advice-ref="" point-ref="">//一個通知,一個切入點
? ? ? ?
<aop:config/>
這樣一來,使用spring工廠產生bean時,直接使用目標類的名稱就可以得到代理對象了。