aop為aspect oriented programming的縮寫,意為:面向切面程式設計,通過預編譯方式和執行期動態**實現程式功能的統一維護的一種技術。aop是oop的延續,是軟體開發中的乙個熱點,也是spring框架中的乙個重要內容,是函式式程式設計的一種衍生范型。利用aop可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度降低,提高程式的可重用性,同時提高了開發的效率。
aop是面相切面程式設計,提高了類重用性,提高了程式設計效率,其可以運用在,效能統計,事物處理,日誌記錄,異常處理等方面,aop底層採用**.4.1匯入aop模組;spring-aop spring-aspectsspring具有四大特徵,分別是,原子性,隔離性,永續性和一致性!
spring-aop-4.3.18.release.jar spring-aspects-4.3.18.release.jar
4.2定義乙個業務邏輯類: 在業務邏輯類執行時,將日誌列印
public class calculation
public int add(int i, int j)
public int minus(int i, int j)
public int multiply(int i, int j)
}
4.2定義乙個日誌切面類並標註註解: 日誌切面類將動態感知切面類的方法的執行狀態
關於切入點表示式的更多用法》
@aspect
public class logaspects
/*** 前置通知:
* 在目標方法執行之前執行
* 1.原生的切入點表示式
*/@before("pointcut()")
public void logstart(joinpoint joinpoint) ");
}/**
* 後置通知:@after
* 在目標方法執行結束之後執行
* 2.公共的切入點表示式
*/@after("pointcut()")
public void logend(joinpoint joinpoint)
/*** 返回通知:@afterreturning
* 在目標方法正常返回之後執行
* 3.外部類引用切入點表示式
* returning="r" : 指定 r 來接受返回值
*/@afterreturning(value = "com.itcast.aop.logaspects.pointcut()",returning = "r")
public void logreturn(joinpoint joinpoint, object r) ");
}/**
* 異常通知:@afterthrowing
* 在目標方法執行異常之後執行
* throwing = "e" : 指定 e 來接受異常
*/@afterthrowing(value = "pointcut()", throwing = "e")
public void logexception(joinpoint joinpoint,exception e) ");
}/**
* 環繞通知:@around
* 動態**, 手動推進目標方法執行(joinpoint.procced())*/}
4.3將切面類和業務邏輯類都加入到ioc容器中 , 並加入切面標籤(@)
/**
* @enableaspectjautoproxy 開啟基於註解的aop模式
*/@enableaspectjautoproxy
@configuration
public class mainconfigofaop
/*** 2.將切面類加入到ioc容器中
** @return
*/@bean
public logaspects logaspects()
}
4.4編寫測試類
public class testaop
}
執行結果如下:
注意事項:1.業務邏輯類和切面類的新增; (@aspect)
2.在具體的通知方法上標註相應的註解, 及切入點表示式的
3.開啟基於註解的aop模式:
@enableaspectjautoproxy
spring之基於aspectj註解aop使用
在配置檔案中開啟aop自動 1 在增強類上面使用 aspect註解 2 在增強方法上面配置不同型別通知 增強類 aspect public class myuser 後置通知 afterreturning value execution cn.aop.user.update public void ...
Spring學習 註解 四)
一 屬性依賴注入 依賴注入方式 手動裝配 和 自動裝配 手動裝配 一般進行配置資訊都採用手動 基於xml裝配 構造方法,setter方法 基於註解裝配 自動裝配 struts和spring整合可以自動裝配 bytype 按型別裝配 byname 按名稱裝配 constructor 構造裝配 anto...
Spring 註解學習筆記
宣告bean的註解 注入bean的註解 配置檔案的註解 aop切面程式設計註解 spring 常用配置 postconstruct 在建構函式執行完之後執行 predestroy 在 bean 銷毀之前執行 activeprofiles 用來宣告活動的 profile profile 為不同環境下使...