2012-11-15 89 views
0

我在春天的定義如下AOP配置:AOP的建議沒有得到調用

<aop:config> 
    <aop:aspect ref="aopAdvice"> 
     <aop:around 
      pointcut="execution(* com.bis.client.auto.ClientHandler.sendCanonical(..))" 
      method="methodDuration"/> 

    </aop:aspect> 
    <aop:aspect ref="aopAdvice"> 
     <aop:around 
      pointcut="execution(public * com.bis.client.auto.MessageHandlerImpl.messageArrived(..))" 
      method="methodDuration"/> 
    </aop:aspect> 
</aop:config> 

我基本上希望在sendCanonical方法或消息方法被調用,以被稱爲methodDuration方法。

問題是建議永遠不會被調用,即使我100%確定這些方法被調用。

任何想法?

回答

0

確保您已定義。同時確保所有其他配置與在springource文檔中定義的相同。

如果上述事情都很好,那麼將切入點改爲「execution(public * *(..))」。這削減了每個班級的每個公共方法。通過這樣做AOP建議應該在您的應用程序中爲每個公共方法調用。如果這工作正常,這意味着你的配置是正確的。如果這不起作用,那麼確保你的配置不好。所以修改配置&試試這一步。

一旦上述步驟工作正常,然後慢慢地一個接一個修改切入點像第一次添加的類名(這應該削減在該類的每個公共方法),然後再添加方法名等

祝您好運! !