(前回記事「なぜSpring BootはDI(依存性の注入)を使うのか?」の続きです)
前回は、密結合・疎結合の違いから始まり、DI(依存性注入)がなぜ必要なのか、そしてSpringのDIコンテナ(IoCコンテナ)がどのように依存関係を自動で解決してくれるのかを解説しました。
今回は、その「DIコンテナ」のさらに奥にある設計思想――IoC(Inversion of Control/制御の逆転)について、できるだけやさしく見ていきます。
実は、DIはIoCを実現するための手段のひとつです。ざっくり言うと、DIは「必要な部品を外から渡す仕組み」、IoCは「オブジェクトの生成やフレームワークからの呼び出しの主導権をフレームワークに渡す考え方」です。SpringのDIコンテナは「IoCコンテナ」とも呼ばれます。
ただし、IoCが逆転させるのは「オブジェクトの作り方」だけではありません。 コンテナが管理するBeanでは、生成・初期化・破棄をフレームワークに任せられます。また、イベントやWebリクエスト、スケジュール実行などのフレームワークの入口では、処理を呼び出すタイミングもフレームワークが管理します。












