« 診察券 | Main | HONDA Fit »

2004.06.06

Eclipse&AspectJ(AJDT)

 EclipseにAspectJプラグイン(AJDT)を追加して、アスペクト指向プログラミングの実験。プラグインで使用する際にAspectJ(1.2)そのものが必要なのかどうかわからなかったのですが、とりあえずそちらを先にインストールしてからAJDT(1.1.4)をインストール。
 ・・・って、よく見てみると、AJDT1.1.4はAspectJ1.1.1のサポートになるんですね。AJDT1.1.7以降でAspectJ1.2の対応となるようですが、Eclipse3.0が必要となるのかな?(現在使用しているのは2.1.3) まぁ、Eclipseのメインストリームは既に3.0の方に移っていますから、仕方のないところではあると思いますが・・・。
 それはさておき、まず試したのは例によって"HelloWorld"(笑)。


public class HelloWorld {
public HelloWorld() {
super();
}

public static void main(String[] args) {
HelloWorld hello = new HelloWorld();
hello.exec();
}

private void exec() {
System.out.println("Hello World!");
}

}


 で、それに対するアスペクト。

public aspect HelloWorldAspect {
pointcut testPoint(): execution ( private void HelloWorld.exec() );

before(): testPoint() {
System.out.println("これからHelloWorld.exec()を実行します");
}

after(): testPoint() {
System.out.println("HelloWorld.exec()の実行は完了しましたか?");
}

}


 う〜ん、最初アスペクトを組み込む前のHelloWorldの実行すらうまくいかなかった(プロジェクトのリビルドが必須となるようで)のを除けば、ここまでならすごく簡単ですね。しかし、凝った使い方をするようになるのはいつになることやら??
 最近のAspectJは、事前コンパイルによってアスペクトを取り込んだクラスファイルを作成することなく、動的にアスペクトを取り込むことができるようで。ただ、実際の業務で使うとなると、「アスペクトを組み込む前」と「アスペクトを組み込んだ後」の業務処理が「同一である」ということの保証をどのように行うか、という新たな問題が発生する場合もありそうですね(ログの出力にアスペクトを使っていた場合など)。

|

« 診察券 | Main | HONDA Fit »

Java」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/3959/722194

Listed below are links to weblogs that reference Eclipse&AspectJ(AJDT):

« 診察券 | Main | HONDA Fit »