2012-09-03 51 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之前方法不适用于静态方法。至于调试问题,我不知道。

相关问题