在aspectJ编译时编织后,我仍然需要在类路径上使用哪些类文件?

时间:2017-08-10 08:43:06

标签: java aop aspectj

假设我有一个由3个文件构建的应用程序:

MyApp.java(申请):

public class MyApp {...}

MyAspect.aj(为应用添加了一些功能):

public aspect MyAspect {

   before(): execution(* MyApp.*(..)) {
     AspectHelper helper = new AspectHelper()
     ...
   }
}

AspectHelper.java(仅在方面使用)

class AspectHelper {...}

编织时编织后,我将MyApp.classMyAspect.classAspectHelper.class。当我运行应用程序时,我是否需要类路径上的所有3个文件,或者其中一些文件将构建在MyApp.class字节码中,我不再需要它们作为单独的文件了?

1 个答案:

答案 0 :(得分:0)

您的编织类(MyApp)将引用方面类(MyAspect)。您在方面类中编写的代码将引用您的帮助程序类(AspectHelper)。您将需要所有文件。当然,aspectj运行时也是如此。您可以使用反编译工具或javap检查已编译的代码。在已编译的类目录中尝试使用javap -p -c -s MyApp.class