Spring註解學習筆記 四 AOP

2021-09-29 00:26:59 字數 2526 閱讀 5014

aop為aspect oriented programming的縮寫,意為:面向切面程式設計,通過預編譯方式和執行期動態**實現程式功能的統一維護的一種技術。aop是oop的延續,是軟體開發中的乙個熱點,也是spring框架中的乙個重要內容,是函式式程式設計的一種衍生范型。利用aop可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度降低,提高程式的可重用性,同時提高了開發的效率。

aop是面相切面程式設計,提高了類重用性,提高了程式設計效率,其可以運用在,效能統計,事物處理,日誌記錄,異常處理等方面,aop底層採用**.

spring具有四大特徵,分別是,原子性,隔離性,永續性和一致性!

4.1匯入aop模組;spring-aop                                spring-aspects

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 為不同環境下使...