Spring初期化Beanのプロセス

Springは次のようにしてBeanを初期化します。

  1. Bean定義:Beanの情報、例えばBean名、クラス、プロパティをの設定ファイルまたはアノテーションで定義します。
  2. スプリングコンテナは設定ファイルをロードし、その中の bean 定義を解析します。
  3. Bean定義に記載されたクラス名に基づいてインスタンスを作成するためにリフレクションメカニズムを使用してBeanインスタンスを作成する。
  4. 設定プロパティ値:コンフィグレーションファイルで定義したプロパティ値を Bean インスタンスに注入する方法に、コンストラクタメソッド、セッターメソッド、アノテーションなどがあります。
  5. 初期化メソッドの呼び出し: BeanがInitializingBeanインターフェースを実装している場合、コンテナはプロパティの設定後にafterPropertiesSet()メソッドを呼び出して初期化します。初期化メソッドが設定ファイルで指定されている場合、コンテナはそのメソッドを呼び出して初期化を行います。
  6. Beanの登録:BeanインスタンスをSpringコンテナに登録し、他のBeanから参照できるようにします。
  7. ライフサイクルコールバック: BeanがBeanPostProcessorインターフェイスを実装すると、コンテナはその初期化の前後にpostProcessBeforeInitialization()メソッドとpostProcessAfterInitialization()メソッドを呼び出し、追加の処理を実施できます。
  8. Bean を活用する:他の Bean は、依存関係の注入、または Bean インスタンスの取得を通じて、初期化された Bean を利用することができます。

Springコンテナでは、初期化時にすべてのBeanインスタンスが作成されるのではなく、必要に応じて作成されます。Beanが必要な場合、コンテナはそのBeanインスタンスが作成されているかどうかを確認し、作成されていない場合は前述のプロセスに従って作成と初期化を行います。これによりリソースの無駄が削減され、パフォーマンスが向上します。

bannerAds