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~)
特殊なコンポーネント
S2Container
ComponentDef
外部バインディング
まとめ