如何将方面代码编织到JAR中的现有类文件中?

时间:2014-10-09 09:13:08

标签: java aspectj

我是aspectj的新手,我怀疑是否可以使用aspectj在jar文件中存在的函数之前注入代码。

1 个答案:

答案 0 :(得分:7)

在我回答你的问题之前,先提出一些建议:

  • 请学习如何提出清晰易懂的问题。
  • 请使用明确表达您想要问的主题(我刚刚编辑过您的主题)。
  • 在询问常见问题解答之前,请使用网络搜索引擎或阅读至少最少的介绍材料。

现在回答:是的,您可以将方面代码编织到第三方类文件或JAR中。有两种方法可以实现这一目标:

  • 二进制编织:使用AspectJ编译器 ajc ,以便将方面应用于现有JAR中的类文件。为此,将JAR放在编译器的 inpath 中。编译后,您可以将新编织的类文件重新打包到一个新的JAR中,然后您可以部署和使用它而不是原始的.JAR。
  • 加载时编织(LTW):通过命令行选项-javaagent:pathto/aspectjweaver.jar使用AspectJ编织代理启动JVM,以便在类加载期间实现方面编织。这样您牺牲了一些启动时间,但不需要创建修改后的JAR文件。一切都是动态发生的。

现在请阅读一些AspectJ documentation