Spring事物攔截器,按照通知方式分為[前置通知(Before advice),返回后通知(After returning advice) ,拋出后通知(After throwing advice),后通知(After (finally) advice),環繞通知(Around Advice)] 配置方式分@AspectJ,XML,網上比較多的是Spring1.1或xml+@AspectJ方式配置,例子使用XML方式配置
1.定義切面類接口,切面類實現這個接口。聲明(如果被代理的目標對象實現了至少一個接口,則會使用JDK動態代理。所有該目標類型實現的接口都將被代理。若該目標對象沒有實現任何接口,則創建一個CGLIB代理)
2.定義前置通知攔截處理類
3.定義攔截器配置文件
4.測試一下前置通知
5.定義返回后通知攔截處理類
6.定義攔截器配置文件
7.測試一下返回后通知
8.定義環繞通知攔截處理類(環繞通知在一個方法執行之前和之后執行。 它使得通知有機會既在一個方法執行之前又在執行之后運行。并且,它可以決定這個方法在什么時候執行,如何執行,甚至是否執行。 環繞通知經常在在某線程安全的環境下,你需要在一個方法執行之前和之后共享某種狀態的時候使用。 請盡量使用最簡單的滿足你需求的通知。(比如如果前置通知(before advice)也可以適用的情況下不要使用環繞通知)) 通知方法的第一個參數的類型必須是 ProceedingJoinPoint 類型。在通知的主體中,調用 ProceedingJoinPoint的proceed() 方法來執行真正的方法。 proceed 方法也可能會被調用并且傳入一個 Object[] 對象 - 該數組將作為方法執行時候的參數。
ProceedingJoinPoint
proceed()
proceed
Object[]
9.定義攔截器配置文件
10.測試一下環繞通知
posted on 2009-02-10 23:07 Pitey 閱讀(1684) 評論(0) 編輯 收藏 所屬分類: Spring
Powered by: BlogJava Copyright © Pitey