書山有路勤為徑,學海無涯苦作舟
第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 閱讀(853) 評論(0) 編輯 收藏 所屬分類: 《AspectJ Cookbook》讀書筆記