さっきの本
Eclipse3ではじめるJavaフレームワーク入門
http://www.amazon.co.jp/gp/product/product-description/4798012564
には、
・Struts
・Struts2
・JSF
---------------------
・Hibernate
・spring
・seasar2
と載っている。
これらフレームワーク、--------より上と下で大きく分かれる。
そこでこのブログでは、上のフレームワークを「モデル用」、下のフレームワークを「MVC用」(画面がついていないか、ついているかで分けている)として、その違いと、自動生成のポイントに関して述べたいと思う。
しかし、その前に、Hibernateについては、図を載せていなかったので、ここに載せておく
こんなかんじ
■モデル用フレームワーク
画面部分のない、O/RマッピングのHibernateやDIのspring、seasar2のフレームワークは大きく分けると以下のとおりになる。
つまり、利用先(出力?)は、呼び出し元クラスとなり、その呼び出し元に機能を提供するために
・モデル部分のクラス(Javaのクラスで記述が多い)
と、
・設定ファイル(XMLファイルが多い)
を利用する。
設定ファイル部分を切り替えると、(コンパイルしなくても)利用するクラスを切り替えられ、柔軟性が高く、また、おなじような形式にできるというところが、ポイントである。
■MVC用フレームワーク
一方、画面があるStruts、Struts2、JSFはこんなかんじ。
利用先は、画面を見るわけだが、
・その画面をだす出し方(レイアウト)をJSP+タグで書く
そして、
・モデルに相当する処理記述部分(Beanであることもあるが)
がモデル用同様あり、さらに
・設定ファイルが、画面とモデルの処理部分をつなぐ形である
■自動生成の場合
で、とくにExcelでデータをいれて、自動生成させる場合、データ項目や処理メソッド名(中身は書かないが)、引数などを書いてもらい
・設定ファイルは出来るだけ自動生成
・モデル部分のクラスは、メソッドだけ書いて、中身空っぽ(雛形)
を作成するようにする。
しかし、問題なのは、MVC型の画面で、レイアウトは自動生成できない。そこで、出来ることというと、
・レイアウト部分以外で、自動生成する必要があれば(StrutsのActionFormなど)、
そこを自動生成する
そのとき、レイアウトファイルの情報から、自動的に自動生成に必要な項目を取り出せるかどうかというところが、効率性につながる。