🖥️

プログラミング自己主導学習[Spring Framework] @Configuration

2025/03/11に公開

@Configuration基本的役割

Spring frameworkで使用されるエノテーションで、Spring IoCコンテナにビーン(Bean)を

登録するクラスであることを示します。

このアノテーションが宣言されたクラス内で@Beanを使用して直接スプリングビンを定義できます。

  • Springが管理するBeanを定義するクラスです。

  • 内部で@Beanメソッドを使用してSpringビーンを登録することができます。

  • Springコンテナが該当クラスを読み、空のオブジェクトを作成および管理します

  • XML設定に代わるJavaベース設定

  • @Componentと違い、受動的に空を定義する場合に適しています。

  • CGLIBプロキシによりシングルトーン保障:

@Configurationは内部的にCGLIB(バイトコード生成ライブラリ)ベースのプロキシオブジェクトです

動作します。

もし@Configurationが一般的なJavaクラスであれば、実行するたびに新しいメソッドが呼び出されます。

CGLIBプロキシオブジェクトがメソッド呼び出しを横取りし、既に生成された空を返してシングルトーンを保障します。

つまり、@Beanメソッドが何度も呼び出されても、Springコンテナは同じインスタンスを返します。

Discussion