Springframeworkを学習中なので、学習内容をまとめていこうかと思います。
細かいところは省略しています。
Beanのライフサイクル
DIコンテナで管理されるBeanのライフサイクルは以下の通り
- 初期化フェーズ
- 利用フェーズ
- 終了フェーズ
上記3フェーズの前後で何が行われているかを把握し、活用できるようにする。
初期化フェーズ
初期化フェーズには3つの工程がある。
- Bean読み込み
- Construct & DI
- Post Construct
Bean読み込み
- Java Configなど、Bean定義を収集
- Bean Factory Post Processorによる定義情報の書き換え
Construct & Dependency Injection
- Beanのインスタンス化
- インジェクション
- コンストラクタ
- セッター
- フィールド
Post Construct
Post Constructは3つの処理に分かれる。
- 前処理
- 初期化処理
- 後処理
前処理、後処理はBean Post Processorによって行われる。
Bean Post Processorはorg.springframework.bean.factory.config.BeanPostProcessor
を実装したクラス。
終了フェーズ
終了フェーズではPreDestroyが呼び出される。
以上です。お疲れ様でしたー。
参考書籍
[Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発] (https://www.amazon.co.jp/Spring%E5%BE%B9%E5%BA%95%E5%85%A5%E9%96%80-Spring-Framework%E3%81%AB%E3%82%88%E3%82%8BJava%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BENTT%E3%83%87%E3%83%BC%E3%82%BF/dp/4798142476/)