2

我是 Spring AOP 触发器的新手。我的代码中有以下切入点触发器。只有第一个切入点触发器 (com.src.a()) 正在工作,当所有四个切入点都被定义时,下面的其余部分都不会触发。但是当我在四个中的任何一个中只定义一个切入点触发器时,它工作正常。不确定为什么在定义所有四个触发器后第一个触发器后的触发器不起作用。请求帮助...

         @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 回答