AOP中遇到的問題

2021-10-08 19:06:03 字數 1957 閱讀 8776

在使用xml方式配置aop時候發現了spring的後置通知和最終通知的順序問題

正常執行的順序應該是:

前置通知(before)>>目標方法》後置通知(after-returning)>>異常通知(after-throwing)>>最終通知(after)

當然後置通知和異常通知只能有乙個執行

我在xml的編寫順序沒有按照平常那麼來,是這麼寫的,先寫的最終通知,最後寫的後置通知

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

xmlns

=""xmlns:context

=""xmlns:tx

=""xmlns:xsi

=""xmlns:aop

=""xsi:schemalocation="

/spring-beans.xsd

/spring-context.xsd

/spring-tx.xsd

">

"accountservice"

class

="com.ligong.service.impl.accountserviceimpl"

/>

"aspect"

class

="com.ligong.utils.aspect"

/>

<

aop:config

>

<

aop:aspectid=

"myaspect"

ref="aspect"

>

<

aop:pointcutid=

"mypointcut"

expression

="execution(public * com.ligong.service.impl.*.*(..))"

/>

<

aop:before

method

="printlogbefore"

pointcut-ref

="mypointcut"

/>

<

aop:after

method

="printlogafter"

pointcut-ref

="mypointcut"

/>

<

aop:after-returning

method

="printlogafterreturning"

pointcut-ref

="mypointcut"

/>

aop:aspect

>

aop:config

>

beans

>

但是按常理來說他執行的順序應該是這樣的

前置通知(before)>>目標方法》後置通知(after-returning)>>最終通知(after)

ps:下面這個圖和我寫的**沒啥關係,只是列出這幾個通知的先後順序

finally中的方法應該是最後執行的

但是我的執行順序是這樣

前置通知(before)>>目標方法》最終通知(after)>>後置通知(after-returning),後置通知和最終通知的順序反了

然後在xml中,把最終通知移到後置通知下面就好了

難道spring aop中後置通知和最終通知的執行順序與xml中通知的先後順序有關?

應該也是有爭議的

關於springMVC中AOP的問題

springmvc的xml配置 spring mvc 啟動時的配置檔案,包含元件掃瞄 url對映以及設定 freemarker 引數,讓 spring 不掃瞄帶有 service 註解的類。為什麼要這樣設定?因為 springmvc.xml 與不是同時載入,如果不進行這樣的設定,那麼,spring ...

double c中遇到的問題

今天用vc6.0和visual studio 2005分別執行了opengl紅寶書中的事例 double.c,遇到了一些簡單但是 我感覺很有用的東西。下面我簡單的說一下。第一件事情是有關 glclear 的使用.由於疏忽,我開始敲入 時將 glclear 誤輸成了glclearcolor 呵呵,娃 ...

面試中遇到的問題

ado activex data objects 是乙個用於訪問資料來源的 com元件 應用程式介面 應用程式和底層軟體互動控制的聯絡方法 超文字置標語言 英文 hypertext markup language 簡稱為 html 什麼是 超檔案傳輸協議 是網際網路上應用最為廣泛的一種網路傳輸協議。...