BT

Google Guice 2.0: 機能強化、定型コード削減

| 作者: Ryan Slobojan フォローする 0 人のフォロワー , 翻訳者 蔦澤 奈津子 フォローする 0 人のフォロワー 投稿日 2009年6月9日. 推定読書時間: 3 分 |

原文(投稿日:2009/6/3)へのリンク

Googleによって作られた、軽量なJava用ディペンデンシーインジェクション(依存性注入)フレームワークである、Guice最新バージョン2.0がリリースされた。InfoQは、リリースの詳細と、Guiceの追加機能を知るために、GoogleのデベロッパチームメンバJesse Wilson氏と話をした。

Guiceの哲学は"目的を持てコードを書く"こと、アプリケーションフレームワークを書くことに時間を費やすことはビジネスの機能を書くことに時間を費やすことではない、とWilson氏は言う。Guiceの意図は、最小限の貫入性と、Javaに基づく設定とアノテーションに基づいたディペンデンシーインジェクションへの取り組みである。いったん初期オブジェクトグラフを生成し、全ての依存性を注入すると、ビジネスロジックが働き、もはや何も考える必要がない。フルスタックのエンタープライズアプリケーション開発フレームワークであるWebworxやSpringといったフレームワークと比較すると、Guiceは多くのエリアを統合するディペンデンシーインジェクションの核である。

今回のリリースに含まれる主な新機能は次のとおり。

  • プロバイダメソッド - この機能は多くのカスタムプロバイダを作成する際に1.0で必要であった多くの定型コードを除去する。
  • 改良されたモジュール機能 - バインディングオーバーライドプライベートモジュールといった新機能は、優れたオーバーライドとモジュール設定の区分化を可能にする。
  • 改善されたエラー報告 - もはやスタックトレースは長々とした 'caused by' の連鎖を含まない。さらに、例外のスローはGuiceの中で一貫性を持つ。
  • AOP - GuiceはAOPを除いて、これをサポートしないプラットフォーム(例えばAndroidなど)に利用可能だ。さらに、OSGiと親和性のある方法でAOPを実施する。
  • サーブレットサポート - サーブレットモジュールはプログラム的なサーブレットの設定と、web.xmlなしのフィルタをサポートする。
  • イントロスペクション - java.lang.reflectと似て、イントロスペクトを実施し、Guiceの設定をプログラム的に変更することができる。

機能リスト一式はGoogle Guice wikiで、さらに、新機能の詳細な手引きは一連のブログ記事で入手可能である。

Wilson氏はプロバイダメソッドで実現する単純化の例を提供した。

インスタンスを提供するためにカスタムビジネスロジックをGuice 1.0で設定することは、以下のとおり非常に粗雑だ。
  bind(Integer.class)
    .annotatedWith(Names.named("lucky"))
    .toProvider(new Provider() {
@Inject @Named("unlucky") int unlucky;
public Integer get() {
return unlucky * 7;
}
}).in(Singleton.class);
プロバイダメソッドは、これを実にきれいにする。
  @Provides @Named("lucky") @Singleton
  int provideLucky(@Named("unlucky") int unlucky) {
    return unlucky * 7;
  }

さらにWilson氏は、Guiceの利用とコミュニティの側面について語った。AdWordsといった、Google内の多くのプロジェクトでGuiceは利用されている。さらに、LimeWireやのようなGuiceのビッグユーザもいる。また、Java EEやOSGi、JBoss、Hibernate、JUnit 、JSFの統合を含むGuice用サードパーティモジュールリストも利用可能だ。Wilson氏は、Guiceコミュニティの活力と熱意に対して多くの賞賛を与え、このコミュニティがGuiceのC++やC#、GWT、PHPポートを作ったことを指摘した。今後の計画について、Wilson氏は、GuiceチームがリソースをJSR 330 Dependency Injectionへ提案することを示唆した。また、2.0リリースに組み込まれない、インジェクタ用の可視化グラフといった、いくつかの機能が今後のGuiceリリースで動作予定であると、同氏は語った。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT