2种切入点表达式

时间:2013-02-11 11:06:45

标签: java reflection aspectj

如果方法匹配,将org.aspectj.lang.reflect.PointcutExpression转换为org.aspectj.weaver.tools.PointcutExpression进行检查的正确方法是什么?

环境: 我得到了reflect.Advice方法并从中提取出相应的PointcutExpressions。然后我想检查,如果特定方法(reflect.Method)匹配该调用。

我的第一个想法是使用这样的PointcutExpressionParser:

pointcutExpressionParser.parsePointcutExpression(reflectPointcutExpression.asString());

但这不能很好地工作,因为asString()方法只提供应该匹配的方法声明,而不是aspectj模式(调用,执行,设置等)。

有人知道怎么做吗?

1 个答案:

答案 0 :(得分:1)

我找到了问题的原因。

Advice.getPointcutExpression()输出真正的Pointcut作为String(如果它直接写入Advice)或Aspect中声明的Pointcut签名。 可以使用AJType.getDeclaredPointcuts()

访问声明的切入点
相关问题