2012-09-03 84 views
0

嗨,我想我在Spring中發現了一個錯誤。我試圖使用一個簡單的MethodBeforeAdvice來檢查我的登錄數據,然後運行一些方法,這裏是代碼的快照。MethodBeforeAdvice之前方法不被調用

公共類主要{

public static void main(String []args){ 
    ProxyFactory pf = new ProxyFactory(); 
    SecureMessage sm = new SecureMessage(); 
    pf.setTarget(sm); 
    pf.addAdvice(new SecurityAdvice()); 
    SecureMessage sm1 = (SecureMessage) pf.getProxy(); 
    sm1.showMessage(); 
} 

沒什麼特別的,你可以看到。當調用showMessage()方法,我期待方法之前SecurityAdvice要調用第一口井也沒有。但這裏是超級奇怪的事情當我在調試窗口並來到最後一行時。

sm1.showMessage(); 

我想看看,如果SM1是代理,所以我在變量窗口中點擊它,你怎麼知道的方法得到了調用之前。就連陌生人我可以點擊它很多次我喜歡和方法將被調用。 劑量任何身體有一個想法發生了什麼事情聽到?

回答

0

找到答案,它沒有工作的原因是因爲showMessage()是一個靜態method.It似乎MethodBeforeAdvice之前方法不適用於靜態方法。至於調試問題,我不知道。

相關問題