Spring AOP切入点

时间:2013-11-04 05:15:34

标签: java spring aspectj spring-aop

我是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 {

    ....
     }

1 个答案:

答案 0 :(得分:0)

您可以通过定义“dumy”切入点来定义多个切入点并将它们组合在一起。也许&&也适用于你的方法(用&&替换'或')

来自文档 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() {}