Spring MVC およびポートレット アプリケーションでは、フィールド インジェクションとは、アノテーションが付けられたフィールドに依存関係を直接挿入する方法を指します。次の例で示すように、@Autowired を使用します。
@Component public class MyComponent { @Autowired private Cart cart; }
代わりに、コンストラクター インジェクションには、依存関係をコンストラクターのパラメーターとして渡すことが含まれます。
@Component public class MyComponent { private final Cart cart; @Autowired public MyComponent(Cart cart) { this.cart = cart; } }
利点と欠点:
コンストラクター インジェクションには、いくつかの利点があります。
セッター注入もオプションであり、オプションまたは時間の経過とともに変更可能な依存関係を注入するためのメカニズムを提供します。
対照的に、フィールド注入にはいくつかの欠点があります。
注入ガイドライン:
春は以下を推奨しますガイドライン:
結論:
フィールド注入の欠点を考慮すると、一般的にはコンストラクターまたはセッター注入を優先することをお勧めします。フィールド注入の利便性は、その潜在的な欠点と制限によって上回られます。
以上がSpring ではフィールド インジェクションよりもコンストラクターまたはセッター インジェクションが優先されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。