AspectJを使ってAnnotationを活用しよう 前編

皆さん、Annotationを活用してますか?JavaでAnnotationが使えるようになったのはJ2SE5.0からなので、導入されてから随分と経ったものです。各種フレームワークやライブラリでも、Annotation対応されるようになり、利用する機会は多いと思います。

さて、今日は提供されているAnnotationを使う話ではなくて、自分で作ったAnnotationを自分で作ったアプリで活用してみようという趣旨。僕自身、ごく最近になって自作Annotationをアプリで使ったっていう程度の経験値なので、過度な期待はされませぬよう・・・。

まずはAnnotationの作成ですが、これについてはいろんなサイトやブログで解説されています。なので、ちらっと触れる程度に留めておきます。この記事で出てきた内容で、不明な所があれば下記のサイトがとても役立つはず。
Javaアノテーションメモ(Hishidama's Java annotation Memo)

とりあえず、簡単にAnnotationを作ってみましょう。題材としては、enum値を保持するだけの簡単なものです。JavaはJ2SE6.0を使ってくださいませ。

public enum SampleEnum {

    SAMPLE1("sample1"), SAMPLE2("sample2");

    private String value;

    private SampleEnum(final String value) {
        this.value = value;
    }

    /**
     * @return the value
     */
    public String getValue() {
        return value;
    }
}

@Target({ ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface SampleAnnotation {

    SampleEnum value() default SampleEnum.SAMPLE1;

}

作ったAnnotationを、適当なメソッドにつけてみましょう。

public class SampleLogic {

    @SampleAnnotation(SampleEnum.SAMPLE2)
    public void sample(String s) {
        System.out.println("arg=" + s);
    }
}

ここまでで、Annotationを作って使ってみるという話はおしまい。次は、メソッドに設定したAnnotationを取得してそこに設定されている値を保持し、どっか別の場所で参照する説明をしようと思います。
ただ、長くなりそうなので、それは次回に持ち越しで・・・。SpringとAspectJを使って説明します。