Q8:あるメソッド実行の代わりに別の処理を実行するには?

ロギングとは関係ありませんが、AspectJ で pointcut で指定したメソッド実行の代わりに別の処理を実行することができます。これには around advice を使います。以下は public void な test1 という名前のメソッドの呼び出しの代わりに、around advice 内の処理を実行します。

package logtest.aop.aspect;

import org.apache.log4j.*;

aspect Around {
        
    private static final Logger logger = 
        Logger.getLogger("logtest.aop.aspect.Around");
    pointcut proxy(): call(public void *.test1(..));

    void around (): proxy() {
        logger.debug("test1 proxy");
    }
}

トップページへ戻る