http://www-106.ibm.com/developerworks/java/library/j-aopwork4/
1本目の記事は、Version5の形がおもしろい。
public class Customer {こんな感じで、メソッド毎にannotation付けるんじゃなく、内部アスペクトを定義して、アノテーションイントロダクションを使って定義。メソッドに付加されるアノテーションがやたら増えてしまうケース(設計まずいっぽいけど)もありそうだから、可読性のためにこれ使うのはあり。
public void setAddress(Address addr) {
}
public void addAccount(Account acc) {
}
public void removeAccount(Account acc) {
}
private static aspect Annotator {
declare annotation: public Customer.*(..): @Transactional;
}
}
2本目が本題で、メタデータアノテーションをインターフェースとして使うという概念を明示している。ポイントカットをアノテーションの集合で表現することで、アスペクトのモジュール性が向上する。今後メソッドのシグネチャを頼りにしたAOPは減っていくはず。
0 件のコメント:
コメントを投稿