DIコンテナはコンポーネント(クラス)間の依存関係をソースコードから取り除き、実行時まで依存関係を持たないようにするデザインパターンに基づいて作られたコンポーネント群を集中管理するための機能です。
Spring Frameworkにおいては、オブジェクトが必要とする情報をBean定義ファイルと呼ばれるXML形式の外部ファイルへ定義し、アプリケーション実行時にDIコンテナが定義された情報を注入してオブジェクトのインスタンスを生成します。
DIコンテナを利用する事によって、以下の利点を得る事ができます。
アプリケーションの拡張性を高められる
単体テストが容易になる
コンポーネントの可搬性を高められる