MethodBeforeAdvice之前没有调用方法

时间:2012-09-03 10:25:14

标签: spring

嗨我认为我在Spring中发现了一个错误。我试图使用一个简单的MethodBeforeAdvice来检查我的登录数据,然后运行一些方法就是代码的快照。

public class Main {

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是否是代理,所以我在变量窗口中点击它,你知道之前的方法被调用了什么。甚至陌生人我可以多次点击它我喜欢并调用该方法。 任何身体都知道发生了什么事情?

1 个答案:

答案 0 :(得分:0)

找到答案它不起作用的原因是因为showMessage()是一个静态方法。似乎MethodBeforeAdvice之前的方法不适用于静态方法。至于debuging问题我不知道。