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

vis*_*ath 13 aspectj

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

但aspectj不拦截此方法调用.

我怎么能告诉aspectj拦截外部jar上的方法调用.或者它不可能吗?

谢谢

Sea*_*oyd 10

有两种选择:

a)将方面编译到JAR中
b)使用加载时间编织(我跟那个一起)

这两个都是高级主题,我建议你阅读Ramnivas Laddad的AspectJ in Action(第二版)以了解更多信息.

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