Spring面向切面程式設計AOP

2021-08-25 11:48:13 字數 1787 閱讀 6129

感謝zejian_大佬的分享:

關於 spring aop (aspectj) 你該知曉的一切

大佬的分享讓我受益匪淺!

首先學習aop前,弄清楚為什麼要使用aop?

舉個栗子有助於理解(乙個支付轉賬的小栗子):

我們每次使用手機支付時,不管轉賬還是支付都需要驗證支付資訊密碼。

這時aop的好處就體現出來了,我們可以將驗證支付這部分內容分離出來,然後告訴spring,你計畫將它放在何處,什麼時候使用它。

下面spring總結知識

spring切面可以應用的五種通知:

前置通知(before):在目標方法被呼叫之前呼叫通知功能;

後置通知(after):在目標方法完成之後呼叫通知,此時不會關心方法的輸出是什麼;

返回通知(after-returning):在目標方法成功執行之後呼叫通知 ,可以獲取方法返回值;

異常通知(after-throwing):在目標方法丟擲異常後呼叫通知;

環繞通知(around):通知報過了被通知的方法,在被通知的方法呼叫之前和呼叫之後執行自定義的行為

`public

class aopbean

public

inttest1()

}

xml檔案:

id="aopaspect"

class="aop.aopaspect">

bean>

id="aopbean"

class="aop.aopbean">

bean>

ref="aopaspect">

id="aop"

expression="execution(* aop.aopbean.*(..))">

aop:pointcut>//設定乙個切入點

method="before"

pointcut-ref="aop">

aop:before>

method="doafter"

pointcut-ref="aop">

aop:after>

method="doafterreturning"

pointcut-ref="aop"

returning="returnval">

aop:after-returning>

method="doafterthrowing"

pointcut-ref="aop">

aop:after-throwing>

aop:aspect>

aop:config>

切面類及切面方法:

public

class aopaspect

public

void

doafter()

public

void

doafterreturning(object returnval)

public

void

doafterthrowing()

}

測試**:

@test

public

void

test1()

}

Spring 的面向切面程式設計(AOP)

aop是一種新的方 是物件導向程式設計的補充。aop的主要關注點是切面,是切面模組化的橫切關注點。使用aop的好處 1.每個事物邏輯位於乙個位置,不分散。便於維護和公升級。2.業務模組更簡潔,只包含核心業務 spring aop的方式有2種,一種是通過註解的方式。一種是通過xml配置檔案的方式。1....

Spring 面向切面程式設計(AOP)理解

1.解釋什麼是aop 面向切面的程式設計,或aop,是一種程式設計技術,允許程式模組化橫向切割關注點,或橫切典型的責任劃分,如日誌和事務管理。2.aspect切面 aop核心就是切面,他將多個類的通用行為封裝成可重用的模組,該模組含有一組api提供橫切功能。比如,乙個日誌模組可以被稱作日誌的aop切...

AOP(面向切面程式設計)和Spring 的AOP

aop 是面向切面程式設計,相對於oop 物件導向程式設計 spring 的aop 是aop 思想的一種實現 aop 可以說是oop 的補充和完善 oop 引入封裝 繼承和多型性等概念來建立一種物件層次結構,用以模擬公共行為的乙個集合。當我們需要為分散的物件引入公共行為的時候,oop 則顯得無能為力...