书山有路勤为径,学海无涯苦作舟
第3行声明了一个方法。 第4行和第5行声明单一命名的切入点的逻辑。切入点逻辑指定了应用程序中的任何连接点,本例中会捕获对void com.oreilly.aspectjcookbook.MyClass.foo(int,String)方法的调用。切入点被命名为callPointcut(),使得可以在方面的作用域内的任意位置都可以引用它。 第8行到11行声明单一通知块。before()通知只是简单地指出它将在任何被callPointcut()切入点匹配的连接点之前执行。 注意:除了.java可作为后缀名以外,.aj也可以作为后缀名使用。ajc工具都会编译所提供的文件。两者没有区别,只是个人喜好而已。 三. 编译一个方面和多个Java文件 如果需要多个文件,那么按上述方法编译是一件痛苦的事情。好在我们可以编写一个AspectJ配置构建文件。配置构建文件的后缀名为.lst,其中包含了所有在编译中需要使用的类文件和方面的名称。如: //File in file.lst com/oreilly/aspectjcookbook/MyClass.java com/oreilly/aspectjcookbook/MyAspect.java com/oreilly/aspectjcookbook/AnotherClass.java com/oreilly/aspectjcookbook/AnotherAspect.java 然后使用如下命令编译: ajc -argfile file.lst -classpath %MY_CLASSPATH% -d %MY_DESTINATION_DIRECTORY% 四. 织入方面到jar中 1.首先编译MyClass.java并打包到MyApp.jar中 java -classpath %MY_CLASSPATH% -d %MY_DESTINATION_DIRECTORY% com/oreilly/aspectjcookbook/MyClass.java jar -cvf MyApp.jar com/oreilly/aspectjcookbook/MyClass.class 2.ajc -classpath %MY_CLASSPATH% -d %MY_DESTINATION_DIRECTORY% -inpath MyApp.jar com/oreilly/aspectjcookbook/HelloWorld.java -inpath选项强制ajc编译器从提供的.jar文件中把Java字节码提取到-d选项所指定的目录中。然后,ajc编译器将把字节码在方面织入过程中。 3. 上述命令并不会产生新的.jar包,如需要将方面织入到新的包中,则需要使用-ourjar选项: ajc -classpath %MY_CLASSPATH% -d %MY_DESTINATION_DIRECTORY% -inpath MyApp.jar -outjar MyAspectOriente的App.jar com/oreilly/aspectjcookbook/HelloWorld.java
五.其他 aj命令可以加载时织入方面 ajdoc则可生成Javadoc文档 六. 使用Ant构建一个AspectJ项目
posted on 2008-06-30 23:10 Brian 阅读(849) 评论(0) 编辑 收藏 所属分类: 《AspectJ Cookbook》读书笔记