Spring Bean として構成された 2 つのインターフェースで @Around を使用しているという問題があります。これらのインターフェイスの 1 つは、別のインターフェイスへのパラメーターであり、常に null 値として渡されます。以下はコードスニペットです
public interface Interface1 {
public void method1();
}
public interface Interface2 {
public void method2(Interface1 param1);
}
@Around("execution(* Interface1.method1(..))")
private void interceptor1(ProceedingJoinPoint pJoinPoint) throws Throwable{
//do something
}
@Around("execution(* Interface2.method2(..))")
private void interceptor2(ProceedingJoinPoint pJoinPoint) throws Throwable{
//do something
}
Interface2 の呼び出しコードでは、常にパラメーター param1 を method2 に null として取得します。上記の @Around("execution(* Interface1.method1(..))") を削除すると、正常に動作します。両方に @Around を追加する理由は、ロギングと監査の目的で例外をキャッチし、残りの例外の伝播を停止するためです。
この問題について教えてください。