ここ数年 JavaでSeasar2を使った開発をやってきてそれなりにナレッジがたまってきました。
フレームのお決まりは、
です。
今までは、上の3つしか使っていませんでしたが、コーディング量を減らして楽している感覚はあまりなかったのですが、DBFluteとS2Buriの導入で変わってきたように思います。
DBFluteは、S2Daoを拡張したようなフレームワーク。スキーマからDaoやEntityなどの自動生成はもとより、BhvやConditionBeanによる非常に便利な機能があります。S2Buriはワークフローステートエンジン、エンティティにあるなんとかフラグとか、そういうエンティティの状態フラグは、Buriにお任せしちゃいましょう。あとはワークローを絵で描いてやれば、ほらif文とさよならできますね。少々複雑なこともDBFluteのConditionBeanでBuriのテーブルとJOINすれば済みますし、別途専用のVIEWを作るのもよいでしょう。
あとはかゆいところに手が届かないのが、メール送信系とバッチ系の処理。ここは、S2MaiとS2Chronosを使います。
S2Maiは実装レスでテンプレート対応のメールを送信できるフレームワークで、S2ChronosもPOJOベースのシンプルなオブジェクトスケジューラ(ちなみに私ひとりで作っています...)、バッチ系で別プログラムって、面倒です。ウェブアプリの中に集約したほうが生産性はあがります。
ということで、この構成でビジネスロジックだけに集中した開発がやっとできるようになったと思います。