0

タイプ writer.write(myObj) のすべてのメソッドをインターセプトする必要があり、myObj に @BeforeWrite アノテーションが付けられたメソッドが含まれている場合にのみ、このメソッドを実行します。

ライターでメソッド呼び出しをインターセプトできるため、ちょっと混乱していますが、@BeforeWriter でアノテーションが付けられたメソッドがある場合に見えるポイントカットを提供する方法がわかりません。これは、おそらく @PostLoad アノテーションがJPAで扱う...

4

1 に答える 1

1

インターセプター処理メソッドには、メソッドを持つ type の引数がありProceedingJoinPointますgetArgs()。引数 ( myObj) メソッドのリフレクションを確認して、続行するかどうかを決定できます。例 (callはタイプですProceedingJoinPoint):

boolean proceed = false;
for (Method method : call.getArgs()[0].getClass().getMethods()) {
    if (method.isAnnotationPresent(BeforeWriter.class)) {
        proceed = true;
        break;
    }
}
于 2012-04-04T09:15:52.880 に答える