2013-02-11 9 views
0

如果方法匹配,將org.aspectj.lang.reflect.PointcutExpression轉換爲org.aspectj.weaver.tools.PointcutExpression用於檢查的正確方法是什麼?2種PointcutExpressions

設置: 我得到了反映。提供方法並從中提取相應的PointcutExpressions。然後我想檢查一下,如果一個特定的方法(reflect.Method)匹配那個調用。

我的第一個想法是用這樣的PointcutExpressionParser:

pointcutExpressionParser.parsePointcutExpression(reflectPointcutExpression.asString()); 

但這並不能很好的工作,因爲asString()方法只給出了應匹配的方法聲明,而不是AspectJ的模式(呼叫,執行,設置等)..

有沒有人一個好主意怎麼做?

回答

1

我找到了問題的原因。

Advice.getPointcutExpression()輸出實際的Pointcut作爲字符串(如果它直接寫入Advice)或在Aspect中聲明的Pointcut的簽名。 聲明的切入點可以AJType.getDeclaredPointcuts()

+0

訪問如果你解決接受的答案:) – dreamcrash 2013-02-11 23:24:37

+0

那不幸的是只可能在15小時問題... – Thorben 2013-02-12 19:14:24