1. 程式人生 > 其它 >【學習筆記】AspectJ筆記

【學習筆記】AspectJ筆記

技術標籤:javaaopmysqllua大資料

AspectJ的概念

  1. 是一種靜態編譯期增強性AOP的實現
  2. 在編譯過程中修改程式碼加入相關邏輯,無需程式設計師動手

AspectJ具體用法

  1. 下載安裝AspectJ,啟動jar檔案,安裝到JDK目錄,新增path和classpath
  2. 切點與切面程式碼
  • 切點前
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;
	}
	
}
  1. 切點定義:pointcut 切點名稱():execution(* 包名.*.*(..));

注意:

  1. 如果沒有事先宣告切點,此時可以直接使用execution表示式作為切點使用
  2. execution關鍵詞可使用call代替
  3. 宣告切點後可以直接使用切點代替execution和call

本文為學習筆記,如需轉載請註明出處