Dependency Injection
-依存性の注入-
はじめに
本章では,Dependency Injection (依存性の注入,以下DI) の利用方法について説明します.
Dependency Injection概要
DIとは,コンポーネントが他のコンポーネントに依存している場合に,その依存物 (他のコンポーネント) を外部 (S2コンテナ)
から注入することです. DIを利用すると,コンポーネントが他のコンポーネントに直接依存することを避けることができます.
図
図
Dependency Injectionのタイプ
Dependency Injectionは,あるコンポーネントが依存する (必要とする) 他のコンポーネントをコンテナから渡されます.
その際の方法として,次のものがあります.
コンストラクタ・インジェクション
セッター・メソッド
メソッド・インジェクション
コンストラクタ・インジェクション
コンストラクタ・インジェクションでは,コンストラクタを通じて依存するコンポーネントが設定されます.
セッター・インジェクション
セッター・インジェクションでは,プロパティのセッター・メソッドを通じて依存するコンポーネントが設定されます.
メソッド・インジェクション
メソッド・インジェクションでは,任意のメソッドを通じて依存するコンポーネントが設定されます.
メソッド・インジェクション
フィールド・インジェクション
フィールド・インジェクションでは,任意のフィールドに直接コンポーネントが設定されます.
フィールド・インジェクションはdiconファイルで指定することはできません.
フィールド・インジェクションを使用するにはアノテーションを指定します.
ライフサイクルとDI
図が欲しい
コンストラクタ・インジェクション
セッター・インジェクション/フィールド・インジェクション
initメソッド・インジェクション
destroyメソッド・インジェクション
自動バインディング
バインディング・タイプ
must
should (デフォルト)
may
none
自動バインディング・モード
auto
constructor
property
none
semiauto (Version: 2.4~)