Aspectj切入点表达式

时间:2015-08-03 09:17:54

标签: java expression aspectj pointcut

我在构建aspectJ表达式时遇到问题。当从“报告”类调用任何“QueryUtil”方法时,我想提出我的建议。

例如:如果我们在Report中调用QueryUtil。*()。*() - >建议已执行。 如果我们从AnyOtherClass调用QueryUtil。*()。* - >建议没有执行。

我在想cflow表达式,但仍然找不到写入它的方法。我在考虑这样的事情:

<pointcut name="scope"
    expression="( cflow(call(* ext.demo.Report.\*(..))) && execution(* ext.demo.QueryUtil.*(..)))"/>

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

你的切入点中唯一奇怪的是流氓'\'我在cflow切入点组件中的*之前看到了。我还建议使用execution(),如果你可以而不是call()(通常有很多调用站点可以调试,但只有一个执行站点)。

cflow(execution(* ext.demo.Report.*(..))) && execution(* ext.demo.QueryUtil.*(..))

如果它不适合你,那么将其分解以确定哪一块有问题。 execution(* ext.demo.QueryUtil.*(..))符合您的预期吗? execution(* ext.demo.Report.*(..))符合您的预期吗? (我会用-showWeaveInfo来检查)