spring三级缓存的执行流程
时间: 2024-03-15 18:39:22 浏览: 64
spring执行流程图
Spring的三级缓存是用于管理Bean对象创建过程中缓存机制,它包括了singletonObjects、earlySingletonObjects和singletonFactories三个缓存。
执行流程如下:
1. 首先,当我们请求获取一个Bean对象时,Spring会先检查singletonObjects缓存中是否存在该Bean对象的实例。如果存在,则直接返回该实例。
2. 如果singletonObjects缓存中不存在该Bean对象的实例,Spring会继续检查earlySingletonObjects缓存中是否存在该Bean对象的提前暴露的实例。如果存在,则将提前暴露的实例放入singletonObjects缓存,并返回该实例。
3. 如果earlySingletonObjects缓存中也不存在该Bean对象的实例,Spring会继续检查singletonFactories缓存中是否存在该Bean对象的工厂方法。如果存在,则使用工厂方法创建Bean对象的实例,并将实例放入earlySingletonObjects缓存和singletonObjects缓存中。
4. 如果singletonFactories缓存中也不存在该Bean对象的工厂方法,Spring会调用createBean()方法创建Bean对象的实例,并将实例放入earlySingletonObjects缓存和singletonObjects缓存中。
5. 最后,无论是通过工厂方法创建还是通过createBean()方法创建的Bean对象实例,都会经过一系列的初始化操作,并最终返回给调用方。
阅读全文