由於某種原因,我的Spring AOP建議被調用兩次。我查了一下:Spring AOP建議叫做Twice
Spring AOP advice is called twice,但我不使用的組件註釋,和我曾經聲明方面豆,用@Aspect註解它,就是這樣。
有點遲到我意識到我的一個類沒有實現一個接口,這導致了CGLIB2的要求。我解決了這個問題,CGLIB2問題消失了,但雙重調用依然存在。
編輯:
忘了提,我檢查,被通知的方法不叫了兩次。
2日編輯:
我聲明一個類有@Aspect,然後我宣佈它作爲應用程序上下文的bean。 XML文件中沒有建議或切入點。
3日編輯:
另外值得一提的是,我之前和方法執行後日志被建議與周邊:
log.info("before");
pjp.proceed();
log.info("after");
我看到的是:
before
before
after
after
這真的很奇怪。
這種情況發生在我設置的@Before和@Around建議中。我還沒有嘗試其他類型。
這裏是切入點聲明,以更改後的名稱:
@Around("execution(public java.util.List<java.lang.String> pac.age.names.myDAO.doSomething(java.lang.String, java.lang.String))")
任何想法?
感謝,
浮潛
你正在掃描軟件包嗎?你說你正在聲明aspect bean一次(用xml?),然後註釋它。這會導致雙重調用。 – 2012-07-17 04:53:25
我正在使用 , 然後我有一個實現了建議的類。 AFAIK,這些都是最簡單的步驟。謝謝! –
MrSilverSnorkel
2012-07-17 05:01:04
如果你的建議被調用兩次,但只有方法被稱爲一個,你可能調用兩種不同的方法嗎? – jddsantaella 2012-07-17 05:15:22