编译如何与 AOP 一起工作?
我需要快速回答 AOP 中的一个简单问题。
如果我在客户端部署了代码,并且编写了我想要在客户端软件中使用的新方面。我是否必须使用“原始”代码和新的“AOP”代码“重新编译”完整的软件? (使用aop编译器)?
即我是否需要原始程序的源代码和新 AOP 的源代码并编译它们?
附: 我问的是一般性的问题,而不是特定于任何语言。但是,如果答案必须是特定于语言的,那么可以说 Java 和 AspectJ 作为 AOP 框架。
I need quick answer to a simple thing in AOP.
If i have a code deployed at client side and i have written new aspects, which i want in the client side software. do i have to "recompile" complete software with "original" code and new "AOP" code? (with aop compiler)?
i.e. do i need the source code of original program with source code of new AOP and compile 'em both?
P.S:
I am asking in general, not being specific to any language. However, if the answer must be language-specific, let's say Java and AspectJ as the AOP framework.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您想查看 AspectJ LTW(加载时编织)。
PS:我假设您的客户愿意部署您的方面代码(例如在单独的 JAR 中)并以稍微不同的方式启动 JVM 以激活 LTW。那么答案是肯定的,有可能。
PPS:AspectJ 甚至可以重新编译您的类文件并进行二进制切面编织,而无需您拥有源代码。这样您就可以用切面编织版本替换客户端代码。这样 JVM 就可以像以前一样启动,只需替换有问题的客户端库即可。
You want to check out AspectJ LTW (load-time weaving).
P.S.: I am assuming that your clients are willing to deploy your aspect code (e.g. in a separate JAR) and start up the JVM in a slightly different way so as to activate LTW. Then the answer is yes, it is possible.
P.P.S.: AspectJ can even recompile your class files and do binary aspect weaving without you needing to have the source code. This way you could replace the client code by an aspect-woven version. That way the JVM could be started just like before, just the client library in question needs to be replaced.