在 aspectJ 编译时编织之后,class 路径上我还需要哪些 class 文件?
Which class files i still need on the classpath after aspectJ compile time weaving?
假设我有一个由 3 个文件构建的应用程序:
MyApp.java
(申请):
public class MyApp {...}
MyAspect.aj
(向应用程序添加一些功能):
public aspect MyAspect {
before(): execution(* MyApp.*(..)) {
AspectHelper helper = new AspectHelper()
...
}
}
AspectHelper.java
(仅供方面使用)
class AspectHelper {...}
经过编译时间编织后,我将得到 MyApp.class
、MyAspect.class
、AspectHelper.class
。当我 运行 应用程序时,我是否需要类路径上的所有 3 个文件,或者其中一些将构建在 MyApp.class
字节码中,我不再需要它们作为单独的文件了?
您编织的 classes (MyApp
) 将参考方面 class (MyAspect
)。您在方面 class 中编写的代码将引用您的助手 class (AspectHelper
)。您将需要所有文件。当然,还有 aspectj 运行时。您可以使用反编译器工具或 javap
检查编译后的代码。在编译后的 classes 目录中尝试使用 javap -p -c -s MyApp.class
。
假设我有一个由 3 个文件构建的应用程序:
MyApp.java
(申请):
public class MyApp {...}
MyAspect.aj
(向应用程序添加一些功能):
public aspect MyAspect {
before(): execution(* MyApp.*(..)) {
AspectHelper helper = new AspectHelper()
...
}
}
AspectHelper.java
(仅供方面使用)
class AspectHelper {...}
经过编译时间编织后,我将得到 MyApp.class
、MyAspect.class
、AspectHelper.class
。当我 运行 应用程序时,我是否需要类路径上的所有 3 个文件,或者其中一些将构建在 MyApp.class
字节码中,我不再需要它们作为单独的文件了?
您编织的 classes (MyApp
) 将参考方面 class (MyAspect
)。您在方面 class 中编写的代码将引用您的助手 class (AspectHelper
)。您将需要所有文件。当然,还有 aspectj 运行时。您可以使用反编译器工具或 javap
检查编译后的代码。在编译后的 classes 目录中尝试使用 javap -p -c -s MyApp.class
。