SpringAOP概念及其使用

2021-08-02 06:15:49 字數 2322 閱讀 6881

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

常用於日誌記錄,效能統計,安全控制,事務處理,異常處理等等。

切面(aspect):切面是乙個關注點的模組化,這個關注點可能是橫切多個物件;

連線點(join point):連線點是指在程式執行過程中某個特定的點,比如某方法呼叫的時候或者處理異常的時候;

通知(advice):指在切面的某個特定的連線點上執行的動作。spring切面可以應用5中通知:

切點(pointcut):指匹配連線點的斷言。通知與乙個切入點表示式關聯,並在滿足這個切入的連線點上執行,例如:當執行某個特定的名稱的方法。

引入(introduction):引入也被稱為內部型別宣告,宣告額外的方法或者某個型別的字段。

目標物件(target object):目標物件是被乙個或者多個切面所通知的物件。

aop**(aop proxy):aop**是指aop框架建立的對物件,用來實現切面契約(包括通知方法等功能)

織入(wearving):指把切面連線到其他應用出程式型別或者物件上,並建立乙個被通知的物件。或者說形成**物件的方法的過程。

基於**的經典springaop;

純pojo切面;

@aspectj註解驅動的切面;

注入式aspectj切面(適用於spring各版本);

前三種都是springaop實現的變體,springaop構建在動態**基礎之上,因此,spring對aop的支援侷限於方法的攔截。

springaop的支援必須呀匯入spring-aspects的jar包

org.springframeworkgroupid>

spring-aspectsartifactid>

4.3.5.releaseversion>

dependency>

採用註解的方式定義切面以及通知

@aspect

public

class

audience

@before("performance()")

public

void

silencecellphones()

@before("performance()")

public

void

takeseats()

@afterreturning("performance()")

public

void

system.out.println("clap clap clap");

}@afterthrowing("performance()")

public

void

demandrefund()

}

class="com.wqh.concert.audience"/>

定義pojo類,這裡只是把上面定義的註解全public class audiencexml

public void takeseats()

system.out.println("clap clap clap");

}public void demandrefund()

name="audiencexml"

class="com.wqh.concert.audiencexml"/>

ref="audiencexml">

id="perform"

expression="execution(* com.wqh.concert.performance.perform(..))"/>

method="silencecellphones"

pointcut-ref="perform"/>

method="takeseats"

pointcut-ref="perform"/>

pointcut-ref="perform"/>

method="demandrefund"

pointcut="execution(* com.wqh.concert.performance.perform(..))"/>

aop:aspect>

aop:config>

Spring AOP的概念及具體配置

一.aop aspect oriented programming 面向切面程式設計 實現的功能 動態的增強乙個方法 先攔截該方法,再增強 可以在方法執行的各個階段加入一些另外的方法來增強原有的方法。二.概念 1.橫切關注點 要動態增強的功能就是關注點,就是增強的 所在的方法 2.連線點 類中的方法...

VO DTO DO PO 概念及其區別

領域模型中的實體類分為四種模型 vo dto do po,各種實體類用於不同業務層次間的互動,並會在層次內實現實體類之間的轉化。用於展示層,它的作用是把某個指定頁面 或元件 的所有資料封裝起來。主要用於展示層與服務層之間的資料傳輸物件 就是從現實世界中抽象出來的有形或無形的業務實體。它跟持久層 通常...

物聯網概念及其介紹

物聯網概念解析 1.物聯網的核心和基礎仍然是網際網路 2.其使用者端延伸和擴充套件到了任何物品與物品之間,進行資訊交換和通訊 物聯網的定義是通過射頻識別 b rfid 裝置 b 紅外感應器 全球定位系統 雷射掃瞄器等資訊感測裝置,按約定的協議,把任何物品與網際網路相連線,進行資訊交換和通訊,以實現智...