Guice-just-in-time-bindings
提供:Dev Guides
Google Guice-ジャストインタイムバインディング
バインディングはBinding Moduleで定義されているため、Guiceは依存関係を注入する必要がある場合は常にバインディングを使用します。 バインディングが存在しない場合、ジャストインタイムバインディングの作成を試みることができます。 バインディングモジュールに存在するバインディングは*明示的バインディング*と呼ばれ、優先順位が高くなりますが、ジャストインタイムバインディングは*暗黙的バインディング*と呼ばれます。 両方のタイプのバインディングが存在する場合、明示的なバインディングがマッピングのために考慮されることに注意してください。
ジャストインタイムバインディングの3つのタイプの例を以下に示します-
Sr.No. | Binding Type & Description |
---|---|
1 |
非プライベート、引数なしのコンストラクターは、ジャストインタイムバインディングの対象となります。 別の方法は、コンストラクタに@Injectアノテーションを付けることです。 |
2 |
@ImplementatedByアノテーションは、実装クラスについて説明します。 このような場合、バインディングモジュールではバインディングは必要ありません。 |
3 |
@ProvidedByアノテーションは、実装クラスのプロバイダーについて説明します。 このような場合、バインディングモジュールではバインディングは必要ありません。 |