我是 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 {
....
}
最佳答案
您可以通过定义“虚拟”切入点并组合它们来定义多个切入点。也许 &&
也适用于您的方法(用 && 替换“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() {}
关于java - Spring AOP 切入点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19762009/