0

こんにちは、Spring でバグを見つけたと思います。簡単な 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 がプロキシかどうかを確認したかったので、[変数] ウィンドウでそれをクリックしました。メソッドが呼び出される前に何がわかりますか? 何が起こっているのか知っている人はいますか?

4

1 に答える 1

0

それが機能しなかった理由は、showMessage() が静的メソッドであったためです。静的メソッドの前に MethodBeforeAdvice が機能しないようです。デバッグの問題については、手がかりがありません。

于 2012-09-03T12:49:42.507 に答える