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

use*_*438 -2 java aspectj

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

kri*_*aex 7

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

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

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

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

现在请阅读一些AspectJ文档.

  • 去搞清楚.;-)这不是原始问题的一部分,但你可以做到,我保证.我现在已经回答了几个非常模糊的问题,但不是总是问新的问题,你可以开始回顾现有的答案,接受并赞成他们(有没有听说过礼仪?).也许那么花时间搞清楚你真正想知道什么然后回答会更有趣. (4认同)