如何解决如何为建议执行连接点定义切入点?
据我所知,我们甚至可以为切入点定义建议。例子
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");
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。