- 追加された行はこの色です。
- 削除された行はこの色です。
[[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