Wicket + Databinder + ActiveObjects が熱い

 すごくいい。とってもいい。何がいいって、まず ActiveObjects から褒めてみますね。

  • 使えるようになるまでがあっというま(設定やコード量的に)。DI コンテナとかいらない。設定ファイルももちろんいらない。
  • エンティティに合わせて CREATE TABLE を発行してくれる。すでにテーブルが存在したら、現在のエンティティに合わせて ALTER TABLE も発行してくれる。リファクタリングをよくする人にはうってつけ。
  • Commons DBCP や C3P0 がクラスパス内にあったら、それを自動的に認識してコネクションプーリングに使ってくれる。ちなみに C3P0 はクラスパス内に Log4J があったら Log4J でロギングしてくれる。log4j-over-slf4j を入れとけば SLF4J でログをはくから Wicket とのログの親和性も問題なし。

 パフォーマンスはどれぐらいなのかはまだ調べてませんが、体感的に S2JDBC なんかより早く感じます。たぶんログの量の違いだとおもいますけど。


 お手軽お気楽な ActiveObjects ですが、使いにくいところもありまして、それがエンティティが直列化可能(Serializable)ではないということなんです。それを補うのが Databinder( http://databinder.net/site/show/overview )です。これを使うと煩わしかったエンティティの取り回しについてほぼ考える必要なし! エンティティマネージャのとりまわしすら考慮不要!

 簡単な CRUD だったらもう全部これでいいよってな勢いです。