Guiceって使えるのか?

このバランス感覚、さすが - GoogleのDIフレームワーク"Guice"を使ってみる

上記のGuiceのハウツーを読んだけど、使えるかどうかさっぱりわからなかったので、もうちょっとだけ調べてみた。すると、GuiceのGoogle Codeページに、GuiceとSpringを比較したドキュメントがあって、いろいろ書いてあった。

GuiceとSpringの違い

要約すると、
  • Guiceはフルスタックでない
  • Guiceは速い
  • GuiceのDI定義は小さく、メンテナンスしやすい
ということのようだ。多少Seasarとかぶっているような気がする。Seasarな人はどう思っているんだろう?Google信者のコミッタに今度きいてみよう。

Guiceの特徴

その他のGuiceの特徴として、いくつか興味深い点があげられていた。
  • Springのアノテーションと互換性がある
  • Springと共存できる
  • Spring用のBeanを使うことができる
  • DI定義は、ソースコードだけでなく外部ファイルに定義できる
  • AOPAllicanceのmethod interceptorをサポートしている(=Springのtransaction interceptorが使える)
  • AOPをフレームワークのコアに組み込んでいるため、開発者が覚えるべきことが少ない
個人的には、AOPへの対応状況に一番興味があったので、少なくともトランザクション関連のInterceptorが使えるというだけで一安心。また、ハウツーではDI定義をソースで書くのが特徴みたいに書いてあったので、外部ファイルがあったってのも発見。

Guiceの立ち位置とSeasar2

 このドキュメントの中で、何度も何度も「Springをリスペクトしている」という旨を記述して予防線をはりつつ、Bean原理主義的なSpringの問題点を明確に認識した上でのフレームワークだと言っている。設定ファイルの問題や、AOPに対する取り組み状況を見ても、Seasar2とGuiceはかなり近い立ち位置に思える。

 国内ではかなり知名度を上げ、それなりに普及してきた(自分のまわりではSpringばっかりだけど…)Seasar2だが、海外ではマイナー中のマイナーだ。それでも、Springに対する機能的・性能的な優位点から海外への広がりも期待できたが、Googleブランドを持つGuiceの登場によって一つ道がせばまったか?

コメント