[[JAVAの記事一覧]] &topicpath; *目次 [#qb433e3e] #contents *はじめに [#gb128514] 設定ファイル地獄という言葉がある。 設定中心のフレームワークが、設定だらけになって メンテナンスが地獄のように面倒になる現象だ。 ここで、アノテーションと呼ばれるものの登場である。 最初アノテーションと言う言葉を知ったときには、何につかうのか?と使い道が思いつかなかったのだが、どうやら、設定中心のフレームワークに応用すると、地獄から抜けられる。たとえば、Strutsに対するSAStrutsの登場である。 自分は、当初SAStrutsがあるんだから、それを使えばよいと思っていた。 しかしながら、SAStrutsは、独自の規約で作成しなくてはならないため、プロジェクトに応用できないということがわかってきた。 だったら、自分で道を切り開くのみである。 というわけで、以下アノテーションについてまとめてみた。 *目標 [#g2bd8ca1] 以下の方法を理解する。 -クラスにつけるアノテーションを定義 -メソッドにつけるアノテーションに定義 *作り方 [#i2262517] **クラスにつけるアノテーションを定義 [#x6951bcb] 最小限の学習ですむように説明するならば、 たとえば、 StringValueAnnotation というアノテーションを作りたいとすると下記のようになる。 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @interface StringValueAnnotation { String value() default "デフォルト値"; } その他は、固定値だと思って差しつかえない。 **メソッドにつけるアノテーションに定義 [#pd9b172f] 上記の例でTYPEとなっている箇所を FIELD に置き換えるだけでよい。 *実装クラス一覧 [#h66a80f2] 知りたいのは、実装するクラスの一覧であるが、どういうわけか Javaらしからず、そのような一覧取得のメソッドは用意されていない、 自分で道を切り開くのみである。 ソースフォルダを指定すると、クラス一覧を取得するメソッドを作製する。 *参考ページ [#o747b05f] http://sattontanabe.blog86.fc2.com/blog-entry-55.html **参考ページ [#sd08201e] http://www.ne.jp/asahi/hishidama/home/tech/java/annotation.html