SJC共同開発推進室の趙(ちょう)です。
Spring Bootを使い始めた際、@Autowiredと書くだけでインスタンスが自動で使えるようになることに、戸惑いと同時に「魔法みたいだ」と感じた方も多いのではないでしょうか。
この「魔法」の正体こそ、Springフレームワークの根幹をなすDI(依存性の注入)です。
本記事では、DIが「なぜ必要なのか」を理解するために、設計の基本である密結合と疎結合から掘り下げます。その上で、SpringのDIコンテナが具体的にどのような仕組みで Bean を生成し、@Autowired に応えて注入しているのかを、ステップバイステップで徹底的に解説します。
DIを深く理解することは、テストしやすく、変更に強いコードを書くための大きな一歩です。ぜひ最後までお付き合いください!




