1. 程式人生 > 實用技巧 >4.5 AOP-XML-前置通知釋出

4.5 AOP-XML-前置通知釋出

戴著假髮的程式設計師出品 抖音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" 使用“,”隔開,保證名字和順序一致。