如何为建议执行连接点定义切入点?

问题描述

据我所知,我们甚至可以为切入点定义建议。例子

package com.master_scrum.aop;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;

@Aspect
public class ConstructorAspect {
   @Before("execution(com.master_scrum.Account.new(..)")
   public void beforeExecuteConstructor(JoinPoint jp){
    System.out.println("Do somthing good");
   }
}

现在如何为该建议创建另一个建议?什么是synctax? 我已经尝试过了,但是没有用:

package com.master_scrum.aop;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;

@Aspect
public class AspectOfConstructorAspect {
 @Before("execution("* ConstructorAspect.*(..))") //aspects are in same package
 public void beforeAspect(JoinPoint jp){
   System.out.println("Before constructor advice");
 }
}

谢谢

解决方法

我从AspectJ手册中找到了解决方案 像这样定义切入点
package com.master_scrum.aop;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;

@Aspect
public class AspectOfConstructorAspect {
 @Before("adviceexecution() && within(com.master_scrum.aop.ConstructorAspect)") 
 public void beforeAspect(JoinPoint jp){
   System.out.println("Before constructor advice");
 }
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...