spring(十) aop環繞通知

2021-07-15 04:49:59 字數 929 閱讀 8733

假如有這麼乙個場景,需要統計某個方法執行的時間,如何做呢?

典型的會想到在方法執行前記錄時間,方法執行後再次記錄,得出執行的時間。

如果採用spring的aop,僅僅使用前置和後置方法是無法做到的,因為他們無法共享變數。這樣通過環繞通知,就可以快捷的實現。

首先在切面通知類中宣告環繞通知類:

public

void

watchperformance(proceedingjoinpoint joinpoint)

catch

(throwable e)

}

在bean.xml配置檔案中配置aop:around,鎖定方法:

<

aop:around

pointcut-ref

="performance"

method

="watchperformance"

/>

這樣執行的結果如下:

the audience is taking their seats.

the audience is turning off their cellphones

begin!

instrumentalist age:25

playing jingle bells:toot toot toot

clap clap clap

end! performance took 95 milliseconds

因此可以看出aop執行的過程如下:

before()

around()

執行方法()

after/throw()

around()

Spring框架AOP的環繞通知

環繞通知 問題 當配置了環繞通知之後,切入點方法沒有執行,而通知方法執行了。分析 通過對比動態 中的環繞通知 發現動態 的環繞通知有明確的切入點方法呼叫,而我們的 中沒有。解決 spring框架為我們提供了乙個介面 proceedjoinpoint。該介面有乙個方法proceed 此方法就相當於明確...

Spring中AOP配置環繞通知

package cn.gpxxg.service.impl import cn.gpxxg.service.accountservice public class accountserviceimpl implements accountservice public void edit intege...

Spring實戰 9 AOP環繞通知

假如有這麼乙個場景,需要統計某個方法執行的時間,如何做呢?典型的會想到在方法執行前記錄時間,方法執行後再次記錄,得出執行的時間。如果採用spring的aop,僅僅使用前置和後置方法是無法做到的,因為他們無法共享變數。這樣通過環繞通知,就可以快捷的實現。首先在切面通知類中宣告環繞通知類 public ...