Spring核心AOP(面向切面程式設計)總結

2021-08-21 02:59:50 字數 2337 閱讀 5943

冷血之心的部落格)

1、aop概念:

2、aop特點:

3、aop底層實現:

jdk動態**實現:

cglib動態**實現:

針對類實現**,對是否實現介面無要求。原理是對指定的類生成乙個子類,覆蓋其中的方法,因為是繼承,所以被**的類或方法最好不要宣告為final型別。

1. 定義乙個實現了methodinterceptor介面的類

2. 實現其intercept()方法,在其中呼叫proxy.invokesuper( )

**方式的選擇:

靜態**:自己編寫建立**類,然後再進行編譯,在程式執行前,**類的.class檔案就已經存在了。

動態**:在實現階段不用關心**誰,而在執行階段(通過反射機制)才指定**哪乙個物件。

4、aop原理

5、aop操作術語:

其實我們只需要這麼記憶即可:

在類裡邊可以有很多方法被增強,比如實際操作中,只是增強了個別方法,則定義實際被增強的某個方法為切入點。

增強的邏輯,稱為增強,比如擴充套件日誌功能,這個日誌功能稱為增強。包括:

把增強應用到具體方法上面的過程稱為切面。

6、aop操作案例:

匯入和aop相關的jar包

建立spring核心配置檔案,匯入aop約束

<?xml version="1.0" encoding="utf-8"

?>

xmlns=""

xmlns:xsi=

""xmlns:aop=

""xsi:schemalocation=

" /spring-beans.xsd

/spring-aop.xsd">

使用表示式配置切入點:

舉例:

package cn.ywq.aop;

public

class

book

}

package cn.ywq.aop;

import org.aspectj.lang.proceedingjoinpoint;

public

class

mybook

public

void

after1

()

//環繞通知

public

void

around1

(proceedingjoinpoint proceedingjoinpoint)

throws throwable

}

<?xml version="1.0" encoding="utf-8"

?>

xmlns=""

xmlns:xsi=

""xmlns:aop=

""xsi:schemalocation=

" /spring-beans.xsd

/spring-aop.xsd">

id="book"

class="cn.ywq.aop.book">

bean>

id="mybook"

class="cn.ywq.aop.mybook">

bean>

expression="execution(* cn.ywq.aop.book.*(..))"

id="pointcut1"/>

ref="mybook">

method="before1"

pointcut-ref="pointcut1"/>

method="after1"

pointcut-ref="pointcut1"/>

method="around1"

pointcut-ref="pointcut1"/>

aop:aspect>

aop:config>

beans>

package cn.ywq.aop;

import org.junit.test;

public

class

testanno

}

Spring的面向切面AOP

aop 面向切面 通知 advice 在什麼時機呼叫該方法 spring提供了5種通知 切點 pointcut 標註需要使用到該通知的方法的位置 切面 aspect 是通知與切點的結合 spring提供了4種各具特色的aop支援 基於 的經典aop aspectj註解驅動的切面 純pojo切面 注入...

Spring面向切面程式設計AOP

感謝zejian 大佬的分享 關於 spring aop aspectj 你該知曉的一切 大佬的分享讓我受益匪淺!首先學習aop前,弄清楚為什麼要使用aop?舉個栗子有助於理解 乙個支付轉賬的小栗子 我們每次使用手機支付時,不管轉賬還是支付都需要驗證支付資訊密碼。這時aop的好處就體現出來了,我們可...

Spring核心機制(面向切面程式設計AOP)

面向切面程式設計 aop 完善spring的依賴注入 di 面向切面程式設計在spring中主要表現為兩個方面 面向切面程式設計 aop 是對物件導向程式設計 oop 的補充,物件導向程式設計將程式分解成各個層次的物件,面向切面程式設計將程式執行過程分解成各個切面。aop從程式執行角度考慮程式的結構...