トップ OSS紹介 Guice

Guice

NRIのOpenStandiaが提供するGuice最新情報

バージョンアップ情報

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には以下の特徴があります。

  • シンプルで軽量
  • アノテーションベース
  • StrutsSpring 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
    サポート対象

    Spring Framework

    スプリングフレームワーク。Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。

オープンソースに関するさまざまな課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。