Java AOP切入点(使用注释)在使用“按功能目录结构包”时记录POJO中除setter和getter之外的所有方法
我使用AspectJ(AOP)进行日志记录。我有以下包结构:Java AOP切入点(使用注释)在使用“按功能目录结构包”时记录POJO中除setter和getter之外的所有方法,java,aop,aspectj,Java,Aop,Aspectj,我使用AspectJ(AOP)进行日志记录。我有以下包结构: com.company.base com.company.base.common.Result.java (its a POJO containing 3 fields and their setters and getters and implements Serialize) com.company.base.feature1.User.java (its a POJO containing 5 fields and thei
com.company.base
com.company.base.common.Result.java
(its a POJO containing 3 fields and their setters and getters and implements Serialize)
com.company.base.feature1.User.java
(its a POJO containing 5 fields and their setters and getters and implements Serialize)
com.company.base.feature2.Customer.java
(its a POJO containing 2 fields and their setters and getters and implements Serialize)
我的要求是:
1) 当从POJO的setter和getter之外的任何类执行任何方法时,记录进入和退出消息
2) 至少应该有一行代码
我使用以下切入点定义,但它也在setters和getter时间调用advision
@Pointcut("execution(* com.company.base..*(..))")
void allMethodExcution() {}
请尽快提出建议。我想我的问题得到了部分答案(可能不是确切答案) 1] 所有POJO都用
@XmlRootElement
注释,因此我又创建了一个切入点和以下建议
// join points created by following point cuts
@Pointcut("within(@javax...XmlRootElement *)")
public void beanAnnotatedWithSpecificAnnotation()
@Pointcut("execution(* com.company.base..*(..))")
public void allMethods()
// this is advise
@Before("!beanAnnotatedWithSpecificAnnotation() && allMethods()")
public void applyAdvise(JoinPoint jp) {
// TODO: advise code ...
}
2] 但是,如果POJO不包含@XmlRootElement
,并且只实现java.io.Serialize
接口,该怎么办