4.5 AOP-XML-前置通知釋出
阿新 • • 發佈:2020-11-04
戴著假髮的程式設計師出品 抖音ID:戴著假髮的程式設計師歡迎關注
[檢視視訊教程]
這裡說明一點,JoinPoint類在註解方式中已經介紹過,這裡不再做介紹。
前置通知的釋出Hellowrold中已經寫過。這裡再介紹以下引數:
我們可以在前置通知的業務方法中新增JoinPoint型別的引數,同樣可以新增我們指定型別的引數:
案例:
Aspect類:
1 /** 2 * @author 戴著假髮的程式設計師 3 * @company http://www.boxuewa.com 4 * @description 5 */ 6 public class DkAspect { 7 //前置通知 8 /** 9 *方法中傳入我們指定的引數 msg 10 */ 11 public void before(JoinPoint joinPoint,String msg){ 12 System.out.println("前置通知:引數"+msg); 13 } 14 }
配置:
<!-- AOP配置 --> <aop:config> <!-- 申明AspectBean,引用我們註冊的dkAspect --> <aop:aspect id="aspect" ref="dkAspcet"> <!-- 宣告一個切入點,命名為pointcut1 --> <!-- xml中不能使用 && ,邏輯與要使用and,--> <!-- 如果我們的before增強方法中傳入了引數msg,我就要使用args(msg)限定切入點 --> <aop:pointcut id="pointcut1" expression="args(msg) and execution(* com.st.dk.demo9.beans..*.*(..))"/> <!--配置兩個前置通知,利用pointcut-ref引用上面申明的切入點--> <!-- 如果要before方法接受msg引數,我們就要在通知配置中使用arg-names指定引數名,如果有多個就使用“,”隔開 --> <aop:before method="before" arg-names="msg" pointcut-ref="pointcut1"/> </aop:aspect> </aop:config>
執行業務方法測試:
詳細圖解:
注意,如果有多個引數,則args(parm1,parm2), arg-names="parm1,parm2" 使用“,”隔開,保證名字和順序一致。