Google Guiceを調査

Google発のDIコンテナであるGuiceを調査しました。
以前からその存在が気になっていたのですが、GAE/J用フレームワークであるSlim3でDIコンテナが提供されないことが分かったことが直接の契機です。


良く知られているように、XMLファイル等の設定ファイルが不要で全て.javaファイルに記述できる点は確かにインパクトが有ります。
S2JDBCSlim3のタイプセーフクエリで、SQL文等を文字列を使用せずに記述することで、スキーマ情報の変更時にコンパイラが要修正箇所を教えてくれる便利さと同様の利点が有るはずです。
また、実行速度も相当速いようで、パフォーマンス面でも検討の価値が有ると思います。


しかし、調査の結果、導入は見送りました。
正直ドキュメント全体に薄く目を通しただけで、あまり深く追ってはいないのですが、どうもCoCによるDIコンテナへの自動登録機能が存在しないようです。
Seasar2で自動登録の便利さにすっかり慣れてしまったことと、多くの時間を割けないことから独自実装と言うわけにもいかず、この機能がネイティブに提供されないのは辛いと判断しました。


現在の感覚だと、Webで言うところのプレゼンテーション層(ActionまたはController)のように、多くのクラスを登録対象とする用途ではなく、
特定のロジックの交換などの用途に導入しやすいように感じました。
導入自体はそれほど大変でも無さそうでしたので、上記のような要件が発生した際に改めて調査したいと考えています。