Java 编译是如何使用AOP的?

Java 编译是如何使用AOP的?,java,compilation,aop,aspectj,Java,Compilation,Aop,Aspectj,我需要在AOP中快速回答一个简单的问题 如果我在客户端部署了一个代码,并且我已经编写了新的方面,这是我想要在客户端软件中实现的。我必须用“原始”代码和新的“AOP”代码“重新编译”完整的软件吗?(使用aop编译器) i、 e.我是否需要原始程序的源代码和新AOP的源代码,并同时编译它们 附言: 我的问题是一般性的,不是针对任何语言的。但是,如果答案必须是特定于语言的,那么假设Java和AspectJ作为AOP框架。您想查看AspectJ LTW(加载时编织) 注意:我假设您的客户愿意部署您的方面

我需要在AOP中快速回答一个简单的问题

如果我在客户端部署了一个代码,并且我已经编写了新的方面,这是我想要在客户端软件中实现的。我必须用“原始”代码和新的“AOP”代码“重新编译”完整的软件吗?(使用aop编译器)

i、 e.我是否需要原始程序的源代码和新AOP的源代码,并同时编译它们

附言:
我的问题是一般性的,不是针对任何语言的。但是,如果答案必须是特定于语言的,那么假设Java和AspectJ作为AOP框架。

您想查看AspectJ LTW(加载时编织)

注意:我假设您的客户愿意部署您的方面代码(例如,在一个单独的JAR中),并以稍微不同的方式启动JVM,以便激活LTW。那么答案是肯定的,这是可能的


p.p.S.:AspectJ甚至可以重新编译类文件并进行二进制方面编织,而无需源代码。通过这种方式,您可以用方面编织版本替换客户机代码。这样,JVM就可以像以前一样启动,只需要更换有问题的客户端库。

您的问题需要是特定于语言的,因为在任何情况下答案都会不同。有时AOP是编译时的,有时是运行时的。只是在Java中,有不同的编译器可以执行运行时和编译时。好了,让我们来看看Java和运行时的事情。你能为我指点一下吗。我最感兴趣的一点是,我已经在客户端部署了代码,我不想重新编译整个代码。部署新方面是否可以拦截已部署的代码?i、 我可以用虚拟机或类似的东西生成某种钩子?我知道这个钩子很旧,但仍然被列为未回答的钩子。如果我的回答合适的话,请你接受并投赞成票好吗?谢谢