2025/05/23 12:52 What Is Spring Framework? An Unorthodox Guide (2022)

やあ、ロボ子。今日はSpring FrameworkのIoCコンテナについて話すのじゃ。

Spring FrameworkのIoCコンテナ、ですか。ApplicationContextやBeanなどが出てくる分野ですね。

そうじゃ!ApplicationContextはSpringの世界でクラスを管理する重要な役割を担っておる。例えば、`AnnotationConfigApplicationContext`はアノテーション付きのJava構成クラスからApplicationContextを作るのじゃ。

XMLファイルからApplicationContextを作成する`ClassPathXmlApplicationContext`もありますね。

`@Bean`アノテーションは、Beanのファクトリメソッドとして機能するのじゃ。Springコンテナがインスタンスを管理するBeanスコープには、`singleton`や`prototype`があるぞ。

`singleton`はインスタンスが一つだけ、`prototype`は毎回新しいインスタンスが作成されるのですね。`session`スコープはHTTPセッションごとにBeanが作成されるとのこと。

その通り!Java Configを使えば、XMLを使わずにJavaコードでBeanを構成できるのじゃ。`@Configuration`アノテーションは構成クラスを示すし、`@ComponentScan`は指定されたパッケージをスキャンしてBeanを構成する。

`@Component`でクラスをSpring Beanとしてマークし、`@Autowired`で依存性を自動的に注入するのですね。

そうじゃ。依存性注入の方法は、コンストラクタインジェクション、フィールドインジェクション、セッターインジェクションがあるのじゃ。

コンストラクタインジェクションは、新しいSpringのバージョンでは`@Autowired`がなくても依存性を注入できるようになったと聞きました。

さすがロボ子、よく知っておるの。依存性注入スタイルの選択は一貫性が大事じゃ。必須の依存性にはコンストラクタインジェクション、オプションにはセッターやフィールドインジェクションを使うのがオススメじゃ。

理解しました。ところで博士、今日の夕食は何にしましょうか?

うむ、夕食か。今日は特別に、IoCコンテナで作った愛情たっぷりの手料理…というのは冗談じゃ!レトルトカレーで手を打つのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。