我想从类列表(可能属于不同的包)中记录所有方法的条目。请注意,这些方法应仅属于指定的类。
我已经尝试了以下但这些不起作用
(1) 使用 if() 切入点这里出现错误
"incompatible number of arguments to pointcut, expected 1 found 0"
@Pointcut("execution(*.*(..)) && if()")
public static boolean mycut(JoinPoint jp) {
boolean matches = ... ;//Test using jp if the declaring class belongs to the list
return matches;
}
(2) 使用 Pointcut 和 aop.xml 的组合 这里我得到一个错误
java.lang.NoSuchMethodError:
com.mypackage.TraceAspect.aspectOf()Lcom/df/jc/aspect/TraceAspect;
//in com.mypackage.TraceAspect aspect class
@Pointcut("execution(*.*(..)) && !within(com.mypackage.TraceAspect)")
public void mycut(){
}
//in aop.xml
<weaver>
<include within="package1.Class1">
<include within="package2.Class2">
<include within="package3.Class3">
</weaver>
这里出了什么问题?
当然可以通过在切入点中单独指定每个类来完成,但这对于数百个类是不可扩展的。理想情况下,如果可以从外部文本文件中获取类列表(以便于配置),那就太好了