Webアプリ開発

5年以上前に初めて作ったWebアプリ(社内システム)はStruts
1.0がでる前でJava, DB, Webのシステムがはじめてだったこともあり大変だった。

いままではお客さんの独自フレームワークが多かった今回初めてお客さん向けのシステムをStrutsで開発を行ってたりする。
Struts+Seasar+S2DAOJavaでは標準的?な構成です。

Taglib, RequestProcesser, StrutsValidator, Plugin とStrutsの機能について一通り拡張してみたが、
この辺はさすがに枯れていて不可解な動作がしないのはいいことだ。StrutsValidatorは腐っているとは思うが。

SeasarはAutoRegisterのバージョンのやつが時期的にちょっと使えなかったので
たくさんDiconファイルに登録しなくちゃいけないのがウザイが自動生成しているのでまあ問題なしか。
やはり使ってみないとわからないことは多いね。
いままではTransctionの制御のみの目的でSeasarを使っていたが
今回はかなりSeasarを使いこなす方向で行っていて、やっとInjectionがしっくりくるようになってきた。

他にも以下のような感じで発行しているSQLのログと、Interceptorの機能をつかってSQLの結果をわかりやすくするようにしたり(sqlファイルなので、そののままコンソールから実行できる)、Select発行する前にCountを取得して制御したりといろいろいじって遊んでいる。

log4j.category.org.seasar.dao.impl=DEBUG, dao
log4j.appender.dao=org.apache.log4j.RollingFileAppender
log4j.appender.dao.File=s2dao.sql
log4j.appender.dao.MaxFileSize=1000KB
log4j.appender.dao.layout=org.apache.log4j.PatternLayout
log4j.appender.dao.layout.ConversionPattern=# %d [%t]%n%m;%n%n

log4j.category.org.seasar.extension.jdbc.impl=DEBUG, dao
log4j.appender.dao=org.apache.log4j.RollingFileAppender
log4j.appender.dao.File=s2dao.sql
log4j.appender.dao.MaxFileSize=1000KB
log4j.appender.dao.layout=org.apache.log4j.PatternLayout
log4j.appender.dao.layout.ConversionPattern=# %d [%t]%n%m;%n%n

S2DAOは便利なんだか便利じゃないんだかいまいちよくわからないというのが率直な感想。
今使っているDBスキーマからクラスを自動生成しているツールがなかったらちょっとやっていられない。
この点はActiveRecordの方が便利でいいな。
S2DaoTestCaseも拡張しているのだが遅くて使えずEclipseから実行より maven deploy でwarをつくってTomcatに自動デプロイしてブラウザからテストを行ったほうが早いという何でやねん状態だ。
ここいら辺はこのあと一ヶ月ぐらいで使いこなせるようにしていかなければ。