Spring の ApplicationContext.getBean はなぜ悪いと考えられるのですか?
Spring の ApplicationContext.getBean() メソッドは、Bean にアクセスする便利な方法のように思えるかもしれません。しかし、それは一般的に悪い習慣であると考えられています。代わりに、依存関係注入を使用して制御反転 (IoC) の概念を採用することをお勧めします。
依存関係注入の委任
ApplicationContext.getBean() の呼び出しは違反です。使用側クラス内に Spring への依存関係を導入することで、IoC 原則を実現します。これにより、クラスの柔軟性が低下し、テストが困難になります。また、依存関係の実装を簡単に変更する機能も妨げられます。
依存関係の挿入の利点
依存関係の挿入には、次のような多くの利点があります。
実装Spring
での依存関係の挿入 ApplicationContext.getBean() を呼び出す代わりに、依存関係を引数として受け取るメソッドを使用側クラスで宣言する必要があります。 Spring は、Bean 設定に基づいて適切な依存関係を自動的に挿入します。
サンプル設定
<bean>
ブートストラップ
main メソッドでは、次を使用してルート Bean "myApplication" を取得します。 ApplicationContext.getBean("myApplication")。このルート Bean は他のすべてのサービスに依存関係を持つ必要があり、他の場所で getBean() を呼び出す必要がなくなります。
結論
ApplicationContext.getBean() を回避すると、真の IoC が促進されます。 Spring を使用すると、柔軟でテスト可能、保守可能なコードが得られます。メソッド引数による依存性注入を採用すると、Spring は依存性を管理するという指定された役割を実行できるようになります。
以上がSpring の ApplicationContext.getBean() の使用はアンチパターンとみなされますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。