Locked History Actions

Diff for "guice/Manual/UserGuide/Bindings"

Differences between revisions 4 and 5
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メソッドプロバイダバインディングアンターゲットバインディングを作成するには、モジュールを使う。

さらなるバインディング

インジェクタに明示的に指示するバインディングのほかに、ビルトインバインディングがある。 また、依存(オブジェクト)が要求されたにも関わらず見つからない場合は、その場バインディングが試される。 さらにインジェクタは、他のバインディングに対してそのプロバイダを保持する。