【學習筆記】AspectJ筆記
阿新 • • 發佈:2021-01-09
AspectJ的概念
- 是一種靜態編譯期增強性AOP的實現
- 在編譯過程中修改程式碼加入相關邏輯,無需程式設計師動手
AspectJ具體用法
- 下載安裝AspectJ,啟動jar檔案,安裝到JDK目錄,新增path和classpath
- 切點與切面程式碼
- 切點前
package test.aspect; //模擬許可權檢查 public aspect AuthAspect { before() : execution(* test.service.*.*(..)){ System.out.println("模擬許可權檢查……"); } }
- 切點後
package test.aspect;
//模擬日誌輸出
public aspect LogAspect{
//定義切點
pointcut logPointCut()
: execution(* test.service.*.*(..));
after(): logPointCut(){
System.out.println("模擬日誌輸出……");
}
}
- 環繞
package test.aspect; public aspect TxAspect{ //測試環繞事務 Object around():call(* test.service.*.*(..)){ //程式碼前執行 System.out.println("模擬開啟事務……"); //放行程式碼 Object rvt = proceed(); //程式碼後執行 System.out.println("模擬關閉事務……"); return rvt; } }
- 切點定義:
pointcut 切點名稱():execution(* 包名.*.*(..));
注意:
- 如果沒有事先宣告切點,此時可以直接使用execution表示式作為切點使用
- execution關鍵詞可使用call代替
- 宣告切點後可以直接使用切點代替execution和call
本文為學習筆記,如需轉載請註明出處