バージョンアップ情報
Guice情報
Guiceとは
Guice(ジュース)は、Google社が開発したオープンソースのDIコンテナで、Java EEのDI仕様の一つであるJSR 330の参照実装でもあります。
DI(依存性の注入、Dependency Injection)とは、コンポーネント間の依存関係をソースコードから排除し、外部の設定ファイルやアノテーションで注入できるようにするソフトウェアパターンのことを意味します。
Guiceを導入し、コンポーネント間の依存関係を排除するメリットとして、以下のようなことが挙げられます。
-
コンポーネントが交換可能
設定ファイルを書き変えれば、再コンパイルの必要もなく、コンポーネントの交換ができる。 -
開発作業の並列化
あるコンポーネントを実装しないと、コンパイルエラーにより別のコンポーネントを実装できないといった、作業順序の制約から解放できる。
-
テストの効率化
他のオブジェクトをシミュレートするスタブやモックオブジェクトを使用して、ユニットテストが容易になる。 -
レガシーコードのリファクタリング
既存のソースコードの挙動を変更せずにリファクタリングすることで、保守性を高めることができる。ただし、Guiceはシンプルな技術である反面、自由度が高くさまざまな使い方ができてしまいます。したがって、明確な意図無く利用してしまうと、かえってデメリットばかりになってしまうため、注意が必要です。
Guiceは、2008年のJolt AwardsのLibraries, Frameworks and Components部門を受賞しています。標準的なJava環境用のもの以外に、Android向けのRoboGuice(ロボジュース)というDIコンテナも存在します。
主な機能
Guiceの主な機能は、以下の通りです。
- DI
- AOP(アスペクト指向プログラミング、Aspect Oriented Programming)
主な特徴
Guiceには以下の特徴があります。
- シンプルで軽量
- アノテーションベース
- StrutsやSpring Frameworkとの統合が可能
- JSR330の参照実装
- Jakarta EEのサポート
類似プロダクト
DIを実現するソフトウェアの中で、最も有名なものはSpring Frameworkです。
開発当初のSpring FrameworkはDIとAOPを実現する軽量なフレームワークでしたが、現在は多数の機能を持つ包括的なフレームワークとなっています。
Spring Frameworkの他にもSeasar2やJava EEでDIは実現できますが、いずれも多機能で、軽量なフレームワークとは言い難いです。
DIのみを実現することが目的であれば、軽量でシンプルなGuiceの選択を検討した方がいいかもしれません。
Guiceとライセンス
Guiceのライセンスは、「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、誰でも自由かつ無償で利用・改変・再配布できるようになっています。
参考情報
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
サポート対象
Spring Framework
スプリングフレームワーク。Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。