Aspectj:来自外部jar的拦截方法

时间:2012-07-02 11:02:01

标签: aspectj

我正在使用X.jar并添加到我的AspectJ项目(在eclipse中)。我已经为X.jar中的方法myMethod()编写了切入点和建议。

但aspectj并没有拦截这种方法调用。

如何告诉aspectj拦截外部jar上的方法调用。或者它不可能吗?

由于

1 个答案:

答案 0 :(得分:9)

有两种选择:

a)将方面汇编到JAR中 b)使用加载时间编织(我会选择那个)

这两个都是高级主题,我建议您阅读AspectJ in Action (2nd Ed) by Ramnivas Laddad以了解详情。

澄清:有不同类型的切入点。如果您的代码调用库的方法,您当然可以拦截这些调用,因为它们会在代码中发生。所以call()切入点可以工作,但是execute()(和许多其他)切入点不会,因为它们会改变执行方法,而不是在你的代码库中。因此,您必须更改库的字节代码(选项a)或更改其加载到应用程序中的方式(选项b)。

相关问题