我在构建aspectJ表达式时遇到问题。当从“报告”类调用任何“QueryUtil”方法时,我想提出我的建议。
例如:如果我们在Report中调用QueryUtil。*()。*() - >建议已执行。 如果我们从AnyOtherClass调用QueryUtil。*()。* - >建议没有执行。
我在想cflow表达式,但仍然找不到写入它的方法。我在考虑这样的事情:
<pointcut name="scope"
expression="( cflow(call(* ext.demo.Report.\*(..))) && execution(* ext.demo.QueryUtil.*(..)))"/>
有人可以帮我吗?
答案 0 :(得分:1)
你的切入点中唯一奇怪的是流氓'\'我在cflow切入点组件中的*之前看到了。我还建议使用execution(),如果你可以而不是call()(通常有很多调用站点可以调试,但只有一个执行站点)。
cflow(execution(* ext.demo.Report.*(..))) && execution(* ext.demo.QueryUtil.*(..))
如果它不适合你,那么将其分解以确定哪一块有问题。 execution(* ext.demo.QueryUtil.*(..))
符合您的预期吗? execution(* ext.demo.Report.*(..))
符合您的预期吗? (我会用-showWeaveInfo
来检查)