DIコンテナとしてSpringを使わせたい理由?
理由かどうかわかんなけど。
スーツな人から見た場合の意見では
Springの2.0から?2.5から?は、自動設定機能があるが
自動化をさせたくないみたい。
設定ファイルに書かれてるようにしたい模様。(=設定を書かせたい)
アスペクトする際は、ServiceとかDaoとか命名で実行したりするのに
インスタンス生成するクラスなどは全部application-contextに記述
するんだって。
iBatis使ってる場合も、テーブルのカラム名とjavaのエンティティを
自動マッピングするなだって。(=こんな感じで、書けってこと)
<resultMap id="xxxList" class="hoge.xxxList"> <result property="insDt" column="INS_DATE" /> <result property="updDt" column="UPD_DATE" /> <result property="userName" column="USER_NAME" /> </resultMap>
自動マッピングだとアンダーバーなどが入って
ちょっと見にくいかもしれないけど(以下のjavaソース参照)、こっちのが
作業上楽じゃん。
カラムUSER_NAMEをプロパティuser_nameに自動でマッピングしてくれるん
だからさ。
private String user_name; public setUser_Name(String user_name){ this.user_name = user_name; }
設定、設定、設定といってXMLを記述して時間もかかり、
セットされない場合に原因を探す方が手間になると思うん
だけどな。
で、DIコンテナとしてSeasar使う場合なんだけど
スーツな人から見たら
アノテーションは、極力使うな!だってさ。
strutsのvalidateは、validation.xmlに書けだって。
strutsのActionのアノテーションは禁止。
struts-config.xmlに書けだって。
もちろん、自動でインジェクションしてくれる
autoBindingなんかも禁止。だから
といったかんじで面倒だけど書いてるよ。
設定ファイルになんでも書くことがよくって、ソースに書くのはダメだって。
何が違うんだよ?と言いたいところですな。
それと、XMLばかり書くとXML地獄じゃないかー。
開発中に、ソースファイル(java、jsp)とXMLファイル(struts-configなど、dicon)をいったりきたりしないと
ならないじゃないかー。
どうやらアノテーションという新機能*1を嫌っているみたい。
設定を見るならば、ソースファイル見るのと、XMLファイル見るのとでは変わらないんじゃないの?
ただ、自分が(スーツの人が)見たことあるファイルにしたいだけと思う。
そんなわけで(どんなわけで?)
最近、生産性と効率がいっこうに上がらない状態に陥っている。
そして、他にもいろいろと問題が・・・
現在たずさわってる案件では、
Seasar2.3+s2struts+s2daoを利用してますが
DXOを使用しないんだそうな。
そのくせ Action層、Service層、Logic層、Dao層 がある。
POJOのActionForm → エンティティ
エンティティ→ ActionFormPOJOの とするようです。
POJOだから良いのか?
良いのか、悪いのか・・・
確かに変換は手間(面倒)がかかるけど、
日付とかは変換したいし
DBのエンティティは数値型(IntegerやDoubleなど)だけど画面表示
ではStringの場合もあるし
個人的には、Seasar2.4のBeanUtilを使いたいんだけどな。
でもコンテナは2.3使ってるから取り入れるとダメって言われる。
素直に?commons BeanUtilsで我慢しときますか。
S2BeanUtil
BeanUtilパッケージのjavaDoc API説明
最後には、じゃ Springじゃね?
と思うみたいですが、スーツな人同士の政治的な争いもあり
DIコンテナとしてSpringかSeasarかは政治的強さにより決定されたりする。
*1:今となっては新じゃなく、使って当たり前、便利