スプリング依存性注入(DI)

春の依存性注入(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を使用してください。 ただし、セッターインジェクションはシンプルであるため、ほとんどのシナリオで常に選択されます。