在spring2.0中,aop發生了很大的變化:
主要分為兩大方面
1.支援簡單的aop xml配置
2.支援@aspectj的注釋
先來看一看第一種情況:
申明乙個aspect,在xml中的申明如下:
...
...
申明pointcut
申明advice
before advice:
pointcut-ref="dataaccessoperation"
method="doaccesscheck"/>
after returning advice:
pointcut-ref="dataaccessoperation"
method="doaccesscheck"/>
...
或者帶有返回引數
pointcut-ref="dataaccessoperation"
returning="retval"
method="doaccesscheck"/>
...
after throwing advice:
pointcut-ref="dataaccessoperation"
method="dorecoveryactions"/>
...
或者帶有throwing
pointcut-ref="dataaccessoperation"
throwing="dataacces***"
method="dorecoveryactions"/>
...
after (finally) advice:
pointcut-ref="dataaccessoperation"
method="doreleaselock"/>
...
around advice:
pointcut-ref="businessservice"
method="dobasicprofiling"/>
...
advice parameters:
pointcut="pointcuts.anypublicmethod() and @annotation(auditable)"
method="audit"
arg-names="auditable"
/>
對於引入介面(introductions
): implement-inte***ce="usagetracked"
default-impl=" service.tracking.defaultusagetracked"/>
and this(usagetracked)"
method="recordusage"/>
Spring面向切面程式設計AOP
感謝zejian 大佬的分享 關於 spring aop aspectj 你該知曉的一切 大佬的分享讓我受益匪淺!首先學習aop前,弄清楚為什麼要使用aop?舉個栗子有助於理解 乙個支付轉賬的小栗子 我們每次使用手機支付時,不管轉賬還是支付都需要驗證支付資訊密碼。這時aop的好處就體現出來了,我們可...
Spring基礎 AOP程式設計 2
size x large b 基於proxyfactory的aop程式設計 b size spring只支援方法連線點,包括了5種型別的增強。list 前置增強 後置增強 環繞增強 異常丟擲增強 引介增強 list 1.前置異常 這裡使用乙個服務員作為例子,服務員向顧客打招呼,並且提供服務。首先我們...
Spring 切面程式設計AOP註解
aop aspect oriented programming 切面程式設計通過預編譯方式和執行期動態 實現程式功能的統一維護的一種技術,是spring框架中乙個重點內容也是函式式程式設計的一種衍生范型。在spring中使用aop的業務只需要關注自己業務本身,將日誌記錄 效能統計 安全控制 事務處理...