春の依存性注入(DI)
Springフレームワークでは、Dependency Injection(DI)設計パターンを使用して、相互間のオブジェクトの依存関係を定義します。 2つの主要なタイプで終了します。
-
セッター注入
-
コンストラクタインジェクション
1. セッター注入
これは最も一般的でシンプルなDIメソッドであり、setterメソッドを介して依存関係を注入します。
例
セッターメソッドを持つヘルパークラス。
package com.example.output;
import com.example.output.IOutputGenerator;
public class OutputHelper
{
IOutputGenerator outputGenerator;
public void setOutputGenerator(IOutputGenerator outputGenerator){
this.outputGenerator = outputGenerator;
}
}
Beanを宣言し、セッターインジェクション(プロパティタグ)を介して依存関係を設定するためのBean構成ファイル。
設定メソッド(setOutputGenerator)を介して「CsvOutputGenerator」Beanを「OutputHelper」オブジェクトに挿入するだけです。
2. コンストラクタインジェクション
このDIメソッドは、コンストラクターを介して依存関係を注入します。
例
コンストラクターを持つヘルパークラス。
package com.example.output;
import com.example.output.IOutputGenerator;
public class OutputHelper
{
IOutputGenerator outputGenerator;
OutputHelper(IOutputGenerator outputGenerator){
this.outputGenerator = outputGenerator;
}
}
Beanを宣言し、コンストラクター注入(constructor-argタグ)を介して依存関係を設定するためのBean構成ファイル。
コンストラクターを介して「CsvOutputGenerator」Beanを「OutputHelper」オブジェクトに挿入するだけです。
セッター注入またはコンストラクター注入?
Springフレームワークによって設定される難しいルールはありません。プロジェクトのニーズに合ったタイプのDIを使用してください。 ただし、セッターインジェクションはシンプルであるため、ほとんどのシナリオで常に選択されます。