AspectJ不捕获来自jar文件的调用

时间:2015-12-22 12:50:59

标签: java eclipse aspectj

我希望在调用System.currentTimeMillis()时执行特定操作。我使用如下的AspectJ来做到这一点。

public aspect CurrentTimeInMillisMethodCallChanger {
    long around(): 
    call(public static native long java.lang.System.currentTimeMillis()) {
        //provide my own implementation 
    }
}

在应用程序的任何方法中调用System.currentTimeMillis()时,此程序可正常工作。

但是,当从jar文件中的方法调用System.currentTimeMillis()时,不会执行around。我使用within(packageofJarFile.*),但它不起作用。

我正在使用Eclipse。

请让我知道我需要添加到上面的代码中以支持来自(特定)jar文件的调用吗?

1 个答案:

答案 0 :(得分:1)

您需要设置Eclipse的AspectJ插件(AJDT),以便它编写库代码,而不仅仅是您自己的类文件。您可以转到Project Properties -> AspectJ Build -> Inpath tab并添加要根据方面编织的jar文件来执行此操作。这是对话框的屏幕截图: AJDT properties screenshot 像这样编织的库类将被转储到输出类文件夹中,除非您在同一属性页的第三个选项卡上设置了Output jar