Springでの依存関係の注入にはいくつかの方法がありますが、それぞれは何ですか?

依存関係の注入にはいくつかの方法があり、それぞれは何ですか?

1.コンストラクターインジェクションコンストラクター
のパラメーターを介して従属オブジェクトを従属オブジェクトに注入し、オブジェクトが初期化されたときにそれを注入します。
利点:
オブジェクトが初期化された後、使用可能なオブジェクトを取得できます。
短所:
注入するオブジェクトが多い場合、コンストラクターのパラメーターリストが非常に長くなり、
柔軟性が不十分になります。複数の注入メソッドがあり、各メソッドがいくつかの指定された依存関係を注入するだけでよい場合、複数のオーバーロードされたコンストラクターを提供する必要があり
、これは面倒です。
2.セッターメソッドインジェクション
IoCサービスプロバイダーは、メンバー変数によって提供されるセッター関数を呼び出すことにより、依存オブジェクトを依存クラスにインジェクトします。
利点:
柔軟性。必要なオブジェクトを選択的に注入できます。
短所:
依存オブジェクトが初期化された後、依存オブジェクトが挿入されていないため、使用できません。
3.インターフェースインジェクション
従属クラスは、指定されたインターフェースを実装してから、依存関係インジェクションに使用される関数をインターフェースに実装する必要があります。この関数のパラメーター
は、注入されるオブジェクトです。
利点
インターフェイスインジェクションでは、関数パラメータが注入されるオブジェクトタイプである限り、インターフェイスの名前と関数の名前は重要ではありません。
短所:
侵入が強すぎるため、お勧めしません。
PS:不法侵入とは何ですか?
クラスAが他の人から提供された関数を使用したい場合、この関数を使用するには、クラスにコードを追加する必要がありますが、これは
侵襲的です。

おすすめ

転載: blog.csdn.net/m0_51684972/article/details/109227611