这里有几个问题:
-
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 http://www.eclipse.org/aspectj/doc/released/devguide/ajc-ref.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)