GoogleGuice-ジャストインタイムバインディング
バインディングはバインディングモジュールで定義されているため、Guiceは依存性を注入する必要があるときはいつでもそれらを使用します。バインディングが存在しない場合、ジャストインタイムバインディングの作成を試みることができます。バインディングモジュールに存在するバインディングは呼び出されますExplicit bindings ジャストインタイムバインディングが呼び出されるのに対し、優先順位は高くなります Implicit bindings。両方のタイプのバインディングが存在する場合、明示的なバインディングがマッピングの対象となることに注意してください。
3種類のジャストインタイムバインディングの例を以下に示します。
シニア番号 | 製本の種類と説明 |
---|---|
1 | 注射可能なコンストラクター
非プライベートで引数のないコンストラクターは、ジャストインタイムバインディングの対象となります。もう1つの方法は、コンストラクターに@Injectアノテーションを付けることです。 |
2 | @ImplementatedByアノテーション
@ImplementatedByアノテーションは、実装クラスについてのガイドに伝えます。このような場合、バインディングモジュールでバインディングは必要ありません。 |
3 | @ProvidedByアノテーション
@ProvidedByアノテーションは、実装クラスのプロバイダーについてのガイドを示します。このような場合、バインディングモジュールでバインディングは必要ありません。 |