Springの3階層キャッシュとは

Springフレームワークにおける3階層キャッシュとは、BeanDefinition用の3つのConcurrentHashMapコンテナ、すなわちsingletonObjects、earlySingletonObjects、singletonFactoriesのことである。

  1. SingletonObjectsは、正しく初期化されたシングルトンBeanオブジェクトを格納します。Beanが最初に作成されると、そのインスタンスはこのキャッシュに配置されます。
  2. 初期化される前のシングルトーンBeanを一時的に保持するキャッシュ。Bean初期化時に循環依存を解決するために、現在作成中のBeanインスタンスを一時的に保持する。
  3. シングルトンファクトリ:事前に初期化済みだが、まだ完全に初期化されていないシングルトンBeanのファクトリオブジェクトを保持するためのもの。Beanを作成する際に循環参照問題への対処が必要な場合、現在作成中のBeanのファクトリオブジェクトを一時的にこのキャッシュに格納します。

この3つのキャッシュの役割は、Springにおける循環参照の問題の解決です。Beanを作成する際、循環参照が存在する場合、キャッシュからBeanインスタンスまたはファクトリオブジェクトを取得し、新しいインスタンスを繰り返し作成することをせず、循環参照の問題を回避します。

bannerAds