java - Spring AOP 切入点

标签 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 {

    ....
     }

最佳答案

您可以通过定义“虚拟”切入点并组合它们来定义多个切入点。也许 && 也适用于您的方法(用 && 替换“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/

相关文章:

java - Spring:检查当前拦截器

java - 方面查找运行时执行的所有切入点

java - 新的 ObjectInputStream 导致挂起/超时

java - 如何使用 JXL API 写入相同的 Excel 工作表?

java - Spring JPA/Hibernate 未更新到数据库以在保存时更改 @Entity 的 boolean 值

java - Spring boot graphql 在类路径上找不到 graphql 模式文件

spring-boot - Tomcat 8、Spring Boot、@Configurable LoadTimeWeaving 没有 -javaagent?

java - 使用 Spring JdbcTemplate 插入数千行

java - utf8(阿拉伯语)字符串显示为问号(?)

java - @EventListener 方法是否应该包含在接口(interface)中?