Spring Boot

IoCとは何か? 〜「作る」だけでなく「呼ぶ」「片付ける」も〜

SpringBoot

(前回記事「なぜSpring BootはDI(依存性の注入)を使うのか?」の続きです)

前回は、密結合・疎結合の違いから始まり、DI(依存性注入)がなぜ必要なのか、そしてSpringのDIコンテナ(IoCコンテナ)がどのように依存関係を自動で解決してくれるのかを解説しました。

今回は、その「DIコンテナ」のさらに奥にある設計思想――IoC(Inversion of Control/制御の逆転)について、できるだけやさしく見ていきます。

実は、DIはIoCを実現するための手段のひとつです。ざっくり言うと、DIは「必要な部品を外から渡す仕組み」、IoCは「オブジェクトの生成やフレームワークからの呼び出しの主導権をフレームワークに渡す考え方」です。SpringのDIコンテナは「IoCコンテナ」とも呼ばれます。

ただし、IoCが逆転させるのは「オブジェクトの作り方」だけではありません。 コンテナが管理するBeanでは、生成・初期化・破棄をフレームワークに任せられます。また、イベントやWebリクエスト、スケジュール実行などのフレームワークの入口では、処理を呼び出すタイミングもフレームワークが管理します。

続きを読む

なぜSpring BootはDI(依存性の注入)を使うのか?

SpringBoot

SJC共同開発推進室の(ちょう)です。

Spring Bootを使い始めた際、@Autowiredと書くだけでインスタンスが自動で使えるようになることに、戸惑いと同時に「魔法みたいだ」と感じた方も多いのではないでしょうか。

この「魔法」の正体こそ、Springフレームワークの根幹をなすDI(依存性の注入)です。

本記事では、DIが「なぜ必要なのか」を理解するために、設計の基本である密結合疎結合から掘り下げます。その上で、SpringのDIコンテナが具体的にどのような仕組みで Bean を生成し、@Autowired に応えて注入しているのかを、ステップバイステップで徹底的に解説します。

DIを深く理解することは、テストしやすく、変更に強いコードを書くための大きな一歩です。ぜひ最後までお付き合いください!

続きを読む

新人エンジニアが実感したSpring Bootの魅力とServletとの比較

こんにちは!SJC共同開発推進室の中谷です!

今年4月に入社し、最初の3か月間は社外研修でJavaを使ったWeb開発の基礎を学びました。
研修ではServletを中心に学習しましたが、現場復帰後はSpring Bootを使ったWebアプリ開発に取り組んでいます。

最初は戸惑いもありましたが、使っていくうちに「これは便利だな」と感じる場面が増えてきました。

この記事では、私が体験したSpring Bootの便利なところを研修時代に触ったServletと比較しながら紹介していきます。これからSpring Bootに触れる方や、私と同じような境遇の方にとって、少しでも参考になれば嬉しいです!

続きを読む