2

Spring AOP トリガーは初めてです。コードに次のポイントカット トリガーがあります。最初のポイントカット トリガー (com.src.a()) のみが機能し、4 つのポイントカットがすべて定義されている場合、残りのトリガーはトリガーされません。しかし、4 つのいずれかでポイントカット トリガーを 1 つだけ定義すると、問題なく動作します。4つすべてが定義されているときに、最初のトリガーの後のトリガーが機能しない理由がわかりません。助けを求めています...

         @AfterReturning ( 
      pointcut = "execution(* com.src.a(..)) "
     + "OR execution(* com.src.b(..)) "
     + "OR execution(* com.src.c(..)) " 
     + "OR execution(* com.src.d(..))")

    public void src ( ) throws Throwable {

    ....
     }
4

1 に答える 1

1

「ダミー」ポイントカットを定義してそれらを結合することにより、複数のポイントカットを定義できます。多分&&あなたのアプローチでもうまくいくでしょう(「OR」を&&に置き換えてください)

ドキュメントから http://docs.spring.io/spring/docs/2.0.8/reference/aop.html

    @Pointcut("execution(public * *(..))")
    private void anyPublicOperation() {}

    @Pointcut("within(com.xyz.someapp.trading..*")
    private void inTrading() {}

    @Pointcut("anyPublicOperation() && inTrading()")
    private void tradingOperation() {}
于 2013-11-04T08:58:28.660 に答える