コンテナは通常、すべてのオブジェクトのインスタンス化を担当する最上位エンティティとして使用されます。最終的に解決しなければならない問題を解決し、すべてのオブジェクトをまとめて新しいものにし、アプリケーションに命を吹き込む必要があります。
依存性注入フレームワークが登場する前は、この問題を解決するために、複数のオブジェクトを結び付ける役割を担う個別の Factory クラスを用意していました。大規模なアプリケーションでは、これにより、一連のオブジェクトに対して "new" を呼び出すだけの不要な定型クラスが多数作成されました。Spring を使用すると、アプリケーションからその懸念を本質的に取り除くことができます。
非常に小さなアプリケーションの場合、おそらくアプリケーションを構築する必要性を感じることはなく、Spring コンテナーを使用するのはおそらくやり過ぎです。しかし、大規模なアプリケーションの場合、Spring のようなコンテナーを使用すると定型的なカットが削減され、アプリケーションのコンテキスト全体を毎回配線することなく、テスト目的でアプリケーションの一部を簡単に配線できます。
さらに、依存性注入コンテナーは、特定のコーディング スタイルを推奨します。これにより、一般的に、よりテストしやすいシステムにつながります。つまり、コンストラクターで依存性を新規作成するのではなく、依存性を注入します。これにより、データベース接続などをモック オブジェクトに簡単に置き換えることができます。
ContainingClass
特定の質問に対する答えは、両方をインスタンス化する方法とのインスタンスを見つける場所を知っているアプリケーションに他のクラスが存在する必要があるということですIDependencyClass
。Spring がこれを行うことができます。または、自分でそれを行うクラスを作成する必要があります。