Deletions are marked like this. | Additions are marked like this. |
Line 23: | Line 23: |
In addition to the bindings you specify the injector includes built-in bindings . When a dependency is requested but not found it attempts to create a just-in-time binding . The injector also includes bindings for the providers of its other bindings. |
インジェクタに明示的に指示するバインディングのほかに、[[guice/Manual/UserGuide/Bindings/BuiltinBindings|ビルトインバインディング]]がある。 また、依存(オブジェクト)が要求されたにも関わらず見つからない場合は、[[guice/Manual/UserGuide/Bindings/JustInTimeBindings|その場バインディング]]が試される。 さらにインジェクタは、他のバインディングに対してその[[guice/Manual/UserGuide/InjectingProviders|プロバイダ]]を保持する。 |
バインディング
インジェクタの仕事は、オブジェクトのグラフを構築することである。 あなたが、型を指定してそのインスタンスを要求すると、インジェクタはビルドすべきものを調べ、依存性解決をし、すべてをワイアリングする。 インジェクタにバインディング指定することにより、依存性解決の方法を指示する。
バインディングの作成
バインディングを作成するには、AbstractModuleを拡張しそのconfigureメソッドをオーバライドすればよい。 メソッドボディにてbind()を使い、各バインディングを指定する。 これらのメソッドはタイプチェックされているので、型が誤っているときはエラーが報告される。 モジュールを作成したら、Guice.createInjector()の引数として渡せばよい。
リンクバインディング、 インスタンスバインディング、 @Providesメソッド、 プロバイダバインディング、 アンターゲットバインディングを作成するには、モジュールを使う。
さらなるバインディング
インジェクタに明示的に指示するバインディングのほかに、ビルトインバインディングがある。 また、依存(オブジェクト)が要求されたにも関わらず見つからない場合は、その場バインディングが試される。 さらにインジェクタは、他のバインディングに対してそのプロバイダを保持する。