Spring學習 aop學習記錄

2021-08-10 00:21:20 字數 2285 閱讀 6103

spring aop(面向方面程式設計)框架,用於在模組化方面的橫切關注點。簡單得說,它只是乙個***攔截一些過程,例如,當乙個方法執行,spring aop 可以劫持乙個執行的方法,在方法執行之前或之後新增額外的功能。

在spring aop中,有 4 種型別通知(advices)的支援:

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

hijackbeforemethod

public static void main(string args) catch (exception e)

}}

輸出結果

*************************

hijackbeforemethod : before method hijacked!

customer name : yiibai mook kim

*************************

hijackbeforemethod : before method hijacked!

customer website :

*************************

hijackbeforemethod : before method hijacked!

其他幾種方式和這種類似。

在上乙個spring aop通知的例子,乙個類的整個方法被自動攔截。但在大多數情況下,可能只需要一種方式來攔截乙個或兩個方法,這就是為什麼引入'切入點'的原因。它允許你通過它的方法名來攔截方法。另外,乙個「切入點」必須具有「advisor' 相關聯。

1 通過切入點只攔截printname方法

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

customeradvisor

spring提供了cutadvisor類來儲存工作宣告advisor和切入點到不同的bean,可以使用 namematchmethodpointcutadvisor兩者結合成乙個 bean。

hijackbeforemethod : before method hijacked!

customer name : yiibai

*************************

customer website :

*************************

只攔截了printname方法。

這個defaultadvisorautoproxycreator是非常強大的,如果有 bean 相關連,spring會自動建立乙個**。

xmlns

=""xmlns:xsi

=""xsi:schemalocation

="/spring-beans-2.5.xsd"

>

"customerservice"

class

="com.yiibai.customer.services.customerservice"

>

name

="name"

value

="yiibai mook kim"

/>

name

="url"

value

=""/>

bean

>

"hijackaroundmethodbeanadvice"

class

="com.yiibai.aop.hijackaroundmethod"

/>

"customeradvisor"

class

="org.springframework.aop.support.namematchmethodyiibaicutadvisor"

>

name

= value

="printname"

/>

name

="advice"

ref="hijackaroundmethodbeanadvice"

/>

bean

>

class

="org.springframework.aop.framework.autoproxy.defaultadvisorautoproxycreator"

/>

beans

>

xml

不用管使用什麼**方法, spring 都會有最適合處理方式。

Spring學習筆記 AOP

1 匯入aop模組 spring aop spring aspects 2 定義乙個業務邏輯 3 定義乙個日誌切面類 通知方法 前置通知 before 在目標方法執行之前執行 後置通知 after 在目標方法執行結束後執行 返回通知 afterrerurning 在目標方法正常返回之後執行 異常通知...

spring學習之AOP 三

四個bean定義的次序並不重要。我們現在有了乙個advice,乙個包含了正規表示式pointcut的advisor,乙個主程式類和乙個配置好的介面,通過工廠ctx,這個介面返回自己本身實現的乙個引用。beanimpl和testbeforeadvice都是直接配置。我們用乙個唯一的id建立乙個bean...

spring 五 AOP註解學習

1 配置檔案 檔名沒有規定,可任意命名 2 建立實現類 日誌記錄實現類 基於註解的aop aspect 宣告切面類 component public class logaspect 後置增強 after execution com.zh.aop.public void afteradvice 環繞增...