gpt4 book ai didi

AspectJ 编译器 (ajc) 与加载时编织

转载 作者:行者123 更新时间:2023-12-04 05:42:55 36 4
gpt4 key购买 nike

这里有几个问题:

  • ajc 是否更改了它编译的所有类(甚至是非方面的)?如果我只编译方面类 ant 然后将它们与通用类放在同一个类路径中会怎样?
  • ajc 编译的项目是否比使用加载时编织的项目执行得更快?
  • 如果我需要编写一个使用 AspectJ 进行跟踪的库,然后我希望该库与任何项目一起使用,该怎么办?在这种情况下,加载时编织是唯一的选择吗?
  • 最佳答案

  • ajc(编译时)只会更改受方面影响的类。请记住,ajc 是 Java 编译器的扩展(准确地说,它基于 Eclipse 3.3 的 JDT 编译器)。因此,它将像普通 Java 编译器一样编译所有 Java 类。然后它将另外编织受方面影响的所有类。如果您将方面与非方面分开编译,那么将不会进行编译时编织,您的方面也不会产生任何影响。但是,您可以将您的方面放在非方面的编译的方面路径上(如果您的非方面是由 ajc 编译的)。这将允许你的非面向被你的面向编织起来。
  • CTW下的启动时间比LTW好很多,但是所有类加载完后,速度差异应该可以忽略不计。原因是在LTW下,所有的类都是在加载的时候编织的。这意味着类加载需要额外的编织步骤,这在 CTW 下是不必要的。
  • 不是。如上所述,您可以将方面添加到您的第二个项目的方面路径中,然后它们将在编译时编织。

  • 有关方面路径的更多信息:

    http://www.eclipse.org/aspectj/doc/released/devguide/ajc-ref.html

    关于AspectJ 编译器 (ajc) 与加载时编织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5717883/

    36 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com