【版權申明】未經博主同意,謝絕轉載!(請尊重原創,博主保留追究權)
https://blog.csdn.net/javazejian/article/details/56267036
出自【zejian的博客】
https://pan.baidu.com/s/1nOsgH6Zm50e2u5ln_3kAhQ
1.切面
切面包括了 切點和通知兩個部分
切點(pointcut)定義需要應用通知的目標函數,通知則是那些需要應用到目標函數而編寫的函數體,切面(Aspect)則是通知與切點的結合。織入(weaving),將aspect類應用到目標函數(類)的過程
1.1切點
切點由pointcut關鍵字,連接點函數名 和 匹配表達式(包括call關鍵字和要切入的目標方法)組成pointcut 函數名 : 匹配表達式
pointcut recordLog():call(* HelloWord.sayHello(..));
recordLog連接點函數,HelloWord.sayHello是要切入的函數
*表示任意返回值,接着就是需要攔截的目標函數,sayHello(..)的..,表示任意參數類型
1.2通知
[返回值類型] 通知函數名稱(參數) [returning/throwing 表達式]:連接點函數(切點函數){
函數體
}
after():recordLog(){
System.out.println("sayHello方法執行後記錄日誌");
}
通知裏定義了連接點函數的具體實現,到這裏跟要切入的目標函數就沒有關係了