Spring AOP的三種實現方法

2021-10-09 18:41:11 字數 2524 閱讀 8312

aop(aspect oriented programming):面向切面程式設計

原生介面實現方式

//前置日誌

public

class

logimplements

methodbeforeadvice

}

public

class

afterlog

implements

afterreturningadvice

}

<

aop:config

>

<

aop:pointcutid=

"pointcut"

expression

="execution(* com.liye.service.userserviceimpl.*(..))"

>

aop:pointcut

>

<

aop:advisor

advice-ref

="log"

pointcut-ref

="pointcut"

/>

<

aop:advisor

advice-ref

="afterlog"

pointcut-ref

="pointcut"

/>

aop:config

>

使用自定義類
public

class

diypointcut

public

void

after()

}

"diy"

class

="com.liye.diy.diypointcut"

/>

<

aop:config

>

<

aop:aspect

ref=

"diy"

>

<

aop:pointcutid=

"point"

expression

="execution(* com.liye.services.userserviceimpl.*(..))"

/>

<

aop:before

method

="before"

pointcut-ref

="point"

/>

<

aop:after

method

="after"

pointcut-ref

="point"

/>

aop:aspect

>

aop:config

>

使用註解開發

開啟註解支援:

<

aop:aspectj-autoproxy

/>

<

aop:aspectj-autoproxy

proxy-target-class

="false"

/>

<

aop:aspectj-autoproxy

proxy-target-class

="true"

/>

**@aspect:**標註在類上,標識它是乙個切面

**@before:**在切面類的方法上,內部引數為切點,表示切點前置增加

@after:在切面類的方法上,內部引數為切點,表示切點後置增加

**@around:**環繞增強

@aspect

public

class

annotationpointcut

@after

("execution(* com.liye.services.userserviceimpl.*(..))"

)public

void

after()

@around

("execution(* com.liye.services.userserviceimpl.*(..))"

)public

void

around

(proceedingjoinpoint jp)

throws throwable

}<

--執行順序:

環繞前==

====

===方法執行前==

*****==

執行方法

環繞後==

====

===方法執行後==

*****==

-->

VMware ESXi Vlan的三種實現方式

在vmware esx esxi網路中vlan實現方式可以分成3種,分別是通過物理交換機,虛擬交換機 vswitch 和esxi中的虛擬機器 vm 來新增vlan標記,具體方式如下 1 est external switch tagging 通過將交換機的埠劃分到不同的vlan實現虛擬機器的vlan...

執行緒的三種建立方

一,繼承thread 重寫run class programmer extends thread public static void main string args 二,繼承runnable 實現run class programmer implements runnable public st...

Python selenium的三種等待方式

time.sleep 3 這種方式簡單粗暴,必須等xx時間,不管你瀏覽器是否載入完了,程式都得等3秒,然後繼續執行下面的 太死板,嚴重影響程式的執行速度。可以作為除錯用,有時 裡面也這樣用。implicitly wait xx 設定乙個最長等待時間,如果在規定時間內網頁載入完成,則執行下一步,否則一...