🖥️
プログラミング自己主導学習[Spring Framework] @Configuration
@Configuration基本的役割
Spring frameworkで使用されるエノテーションで、Spring IoCコンテナにビーン(Bean)を
登録するクラスであることを示します。
このアノテーションが宣言されたクラス内で@Beanを使用して直接スプリングビンを定義できます。
-
Springが管理するBeanを定義するクラスです。
-
内部で@Beanメソッドを使用してSpringビーンを登録することができます。
-
Springコンテナが該当クラスを読み、空のオブジェクトを作成および管理します
-
XML設定に代わるJavaベース設定
-
@Componentと違い、受動的に空を定義する場合に適しています。
-
CGLIBプロキシによりシングルトーン保障:
@Configurationは内部的にCGLIB(バイトコード生成ライブラリ)ベースのプロキシオブジェクトです
動作します。
もし@Configurationが一般的なJavaクラスであれば、実行するたびに新しいメソッドが呼び出されます。
CGLIBプロキシオブジェクトがメソッド呼び出しを横取りし、既に生成された空を返してシングルトーンを保障します。
つまり、@Beanメソッドが何度も呼び出されても、Springコンテナは同じインスタンスを返します。
Discussion