- 2009年11月 9日 19:21
- Java
Jakartaプロジェクトが開発するJavaフレームワークとして有名なStruts。
当スクールではStruts1.2.8のバージョンで講座を展開しておりますが、
今回はStruts2.Xのバージョンについてご紹介したいと思います。![]()
Struts2の機能として主に挙げられるのが以下の3つです。
- アノテーション機能
- DI(Dependency Injection)
- POJO(Plain Old Java Object)
今回はアノテーション機能について見てみましょう。
そもそも、アノテーションとはなんでしょうか?元々の意味としては
「標本などを閲覧した際に、その標本に付けるコメントのこと」になります。
JavaSE5からアノテーションという名前の機能ができ、
メソッドの前などに注釈としてコメントを付けて使用します。
コメントとの違いは、
- プログラムからアノテーションを読み取って処理する点
- アノテーションがコンパイラの動作に影響を与える点
などです。
例えば、以下のソースをご覧下さい。
class Super{
public void method() {}
}
class Sub extends Super {
@Override public void method() {}
}
@Overrideの部分がアノテーションに当たるのですが、
このソースでは@Overrideというアノテーションの記述が、コンパイル時にチェックされ、
オーバーライドしていないとエラーになります。
タイプミスや記述ミスを防ぐために使われます。
では、Struts2ではこのアノテーション機能がどう使われているのでしょうか?
Struts2では、Actionクラスでの画面遷移などに使用されます。![]()
以下のソースをご覧下さい。
@Results({
@Result(name="success", value="Sample.jsp"),
@Result(name="failure", value="error.jsp")
})
public class Hello {
public String execute() {
//処理は省略
return "success";
}
}
今回のサンプルでは@Resultというアノテーションを使用していますが、
このアノテーションで、従来設定ファイルに書いていたような
画面遷移の記述を指定することができます。
今までStruts1で開発していた人にとっては気持ち悪いかもしれませんが、
この機能を使って
設定ファイルをほとんど使用せずにプログラムを作ることができます。
Actionクラスの設定を、Struts1では全て設定ファイルに書いていましたが、
それをActionクラスのソース内に書いてしまおうという機能です。
別に設定ファイルを使って書くこともできますが、
アノテーションを使っても書けるといった形です。
確かにコードは見やすくなるかもしれませんが、
設定ファイルで設定情報の一元管理ができなくなるので、
全体の流れが見づらくなるという懸念点もあります。
フレームワークもバージョンアップにより、
どんどん使いやすいように進化しています。
みなさんも新しい技術に対して常にアンテナを張り、
学習してみてはいかがでしょうか?
--------------------------------------------------------------------------------
パソコンスクール KENスクール新宿校 Programインストラクター
http://www.kenschool.jp/school/shinjuku/index.html
KENスクールでStrutsを学びたい方は、Program講座へ!
http://www.kenschool.jp/Program/index.html
