我有一个Aspect类,它定义了一个切点表达式,如下所示
@Pointcut("execution(* com.vg.pw.tasks.shared.*.executeTasks(..))")
public void myTraceCall() {}
其中executeTasks()方法是静态的。如果方法是非静态的,则每次调用executeTasks()
时都会执行方法体。为什么我的切入点对静态方法无效?
我正在使用LTW而不是弹簧。
答案 0 :(得分:1)
我刚尝试了你的切入点表达式,它可以同样适用于静态和非静态方法。我使用了AspectJ weaver 1.8.7。尝试将groupby
和-showWeaveInfo
添加到您的aop.xml以获取有关LTW的调试信息。
-verbose
它应该在stderr上给你输出类似于:
<!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN" "http://www.eclipse.org/aspectj/dtd/aspectj.dtd">
<aspectj>
<weaver options="-showWeaveInfo -verbose">
<include within="q35218146..*" />
</weaver>
<aspects>
<aspect name="q35218146.Aspect35218146"/>
</aspects>
</aspectj>