spring 註解方式動態代理
阿新 • • 發佈:2019-01-10
一:動態代理和靜態代理的區別?
動態代理是將代理物件下的所有的方法都集中到代理類中集中處理.
靜態代理是將代理物件的某個方法進行轉發處理
二:註解方式的動態代理
第一步:
引入相關的xsd
通過aop名稱空間的<aop:aspectj-autoproxy />宣告自動為spring容器中那些配置@aspect 切面的bean建立代理,織入切面.
意思是在方法執行之前,先執行我的方法.要想把這個邏輯織入到某個方法上面,這個方法必須是spring管理起來的.
第二步:
@aspect
@conmpent
@before(execution(public void add(string id)))
pulic void beforeadd()
{
syso("我在add之前執行");
}
三:
在Spring AOP中支援4中型別的通知:
1:before advice 在方法執行前執行。
2:after returning advice 在方法執行後返回一個結果後執行。
3:after throwing advice 在方法執行過程中丟擲異常的時候執行。
4:Around advice 在方法執行前後和丟擲異常時執行,相當於綜合了以上三種通知。
當切入點都一樣時,我們可以定義一個切入點,mymethod()