Google Guice には、ほぼすべての Spring 依存性注入の概念に対する 1:1 のマッピングがありますが、さらにいくつかの優れた機能があります。
1. すべて Java です。Google Guice には Java コードのすべての構成が含まれているため、xml 構成などを扱う必要はありません。
2. エラー メッセージの改善。Guice には、適切なスタック トレースをクリーンアップして再スローするインターセプターがあります。春はすべてを吐き出すだけです。
3. ジャスト イン タイム バインディング (または暗黙的バインディング)。これは、引数のないコンストラクターがある場合、追加のバインディングは必要なく、注入するだけであることを意味します! ゼロ引数のコンストラクターであるか、既に注入されている複数の引数を持つコンストラクターを注入しようとしている場合も同様で、追加の構成は必要ありません。また注入するだけ!
4. Eager/Lazy インジェクションSpring でインジェクトすると、何もインジェクトしないか、すべてをインジェクトすると表示されます。Guice には遅延注入するオプションがあります。これは、必要な依存関係グラフのサブセクションのみを作成することを意味します。これはいくつかのことを意味します - これらの奇妙な特別な Spring テスト ファイルは必要ありません。Guice はテストではるかに高速に挿入され、Eclipse で最小限のセットアップまたはセットアップなしで統合テストを実行できます。
5. 型によるバインディング。これは、名前でバインドする Spring とは異なります。Spring では、誤って 2 つのインスタンスを同じ名前にバインドすると、Spring は黙って失敗し、最後に来たバインディングを取得してさらに混乱します (yech)。Spring は「型によるバインド」オプションを提供しますが、だまされてはいけません。その基礎となる実装は依然として String です。
ソース: https://github.com/google/guice