■ Google Guiceとは?
* Googleが作ったDIコンテナ * DIに特化して、パフォーマンスを重視 * 「ジュース」って呼ぶらしい * DIコンテナの設定を、XMLファイルではなく、Javaクラスで設定する(Eclipseのコードアシスト機能が活用できる) * DIを行う際に、注入するインスタンスは、Javaのアノテーション機能を用いてインジェクションを行う
■ プログラミングの基本的な流れ
[1] GuiceのModuleを定義する(サンプルだと「ModuleDemo.java」) [2] Injectorを作成して必要なインスタンスを作成してもらう(サンプルだと「Di.java」)
■ サンプル
* Google Guice Version : Ver2.0 * 開発環境 : Eclipse
準備
* 「ダウンロード場所」で、Google Guiceをダウンロードする * 新規プロジェクトを立ち上げて、以下のJARを追加する [1] guice-2.0.jar [2] aopalliance.jar
実装
Main.javaimport com.google.inject.Guice; import com.google.inject.Injector; public class Main { public static void main (String[] args) { Injector injector = Guice.createInjector(new ModuleDemo()); Bank bank = injector.getInstance(Di.class); String report = bank.getBalanceReport(1); System.out.println(report); } }ModuleDemo.java
import com.google.inject.AbstractModule; public class ModuleDemo extends AbstractModule { @Override protected void configure() { bind(Dao.class).to(DaoImpl.class); } }Di.java
import com.google.inject.Inject; public class Di { private final Dao dao; @Inject public Di (Dao dao) { this.dao = dao; } public String getString () { String str = dao.getString(); return String.format("取得した文字:%s\n", str); } }Dao.java
public interface Dao { public String getString (); }DaoImpl.java
public class DaoImpl implements Dao { public String getString () { return "DIサンプルです"; } }
参考資料
http://blogs.yahoo.co.jp/dk521123/19708992.htmlhttp://d.hatena.ne.jp/arumani/20070311/1173626849
http://masayuki.pbworks.com/Google-Guice%E3%81%A7HelloWorld
http://www.atmarkit.co.jp/fjava/rensai4/enterprise_jboss03/03.html