嗨我认为我在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是否是代理,所以我在变量窗口中点击它,你知道之前的方法被调用了什么。甚至陌生人我可以多次点击它我喜欢并调用该方法。 任何身体都知道发生了什么事情?
答案 0 :(得分:0)
找到答案它不起作用的原因是因为showMessage()是一个静态方法。似乎MethodBeforeAdvice之前的方法不适用于静态方法。至于debuging问题我不知道。