spring的三级缓存
时间: 2023-10-28 08:34:35 浏览: 103
在 Spring 框架中,Bean 的创建过程中会使用到三级缓存。这三级缓存分别是 singletonObjects、earlySingletonObjects 和 singletonFactories。
1. singletonObjects:用于存放完全初始化好的单例对象,也就是完成了属性注入、Aware 回调和初始化方法等一系列操作的 Bean 对象。
2. earlySingletonObjects:用于存放早期的单例对象,也就是完成了属性注入和 Aware 回调,但还未执行初始化方法的 Bean 对象。
3. singletonFactories:用于存放 Bean 工厂对象,即创建 Bean 实例的工厂对象,通常是 FactoryBean 接口的实现类。
这三级缓存的作用是为了解决循环依赖问题,通过在 Bean 的创建过程中,提前暴露 Bean 对象,从而避免循环依赖导致的死循环。同时,这三级缓存也可以提高 Bean 对象的创建效率,避免重复创建对象。
阅读全文