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

标签 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() 时工作正常在应用程序的任何方法中调用。

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

我正在使用 Eclipse。

请让我知道我需要在上面的代码中添加什么来支持从(特定)jar 文件的调用?

最佳答案

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

关于java - AspectJ 不捕获来自 jar 文件的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34416329/

相关文章:

java - JTDS驱动程序: Could not find a Java charset equivalent to collation 2C04D01000

java - 将源代码转换为 LaTeX

java - 插入行 SPRING + Hibernate 时的 MySql 编码问题

eclipse - Maven 项目在 Eclipse 中不被视为 Java

annotations - AspectJ - 检索带注释的参数列表

java - 围绕 Spring-AOP 切入点和继承的澄清

java - Log4j SMTP 附加程序

java - 从网站 XML 数据动态填充 ListView Android

java - 如何使用git中止特定文件的 merge ?

java - eclipse 无法识别 jar 文件