OSS紹介

Guice

Guice最新情報

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

Guiceの保守サポートサービスの内容はこちら Guiceの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Guice最新トピック

すべてを見る

Guiceバージョンアップ情報

すべてを見る

更新日:2016-11-30

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の主な機能と特徴

Guiceの主な機能は、以下の通りです。

  • DI
  • AOP(アスペクト指向プログラミング、Aspect Oriented Programming)

Guiceには以下の特徴があります。

  • シンプルで軽量
  • アノテーションベース
  • StrutsやSpring Frameworkとの統合が可能
  • JSR 330の参照実装

Guiceと同類のソフトウェア

DIを実現するソフトウェアの中で、最も有名なものはSpring Frameworkです。
開発当初のSpring FrameworkはDIとAOPを実現する軽量なフレームワークでしたが、現在は多数の機能を持つ包括的なフレームワークとなっています。
Spring Frameworkの他にもSeasar2やJava EEでDIは実現できますが、いずれも多機能で、軽量なフレームワークとは言い難いです。
DIのみを実現することが目的であれば、軽量でシンプルなGuiceの選択を検討した方がいいかもしれません。

Guiceとライセンス

Guiceのライセンスは、「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、誰でも自由かつ無償で利用・改変・再配布できるようになっています。

NRIのGuiceのサポート(保守/サポートサービス)

  • 現在、Guiceのサポートを実施していません。

関連OSS

Guiceのダウンロード

Guice ダウンロードページ

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気OpenAM
  • 注目MongoDB
  • OpenIDM
  • Corosync
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • BIND
  • Apache Struts
  • PostgreSQL
  • Pentaho
  • Spring Framework
  • Apache Tomcat
  • Solr
  • Dovecot
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Liferay
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • BIND
  • OpenDJ
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • sendmail
  • Courier-IMAP
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO
?
<--!-->