spring中,bean的Early Reference阶段使用的是spring的三级缓存吗?使用的属性是什么?
时间: 2024-04-28 14:22:35 浏览: 117
在非spring注解类中使用spring容器中的bean_普通类中使用yml配置文件中的配置信息
在Spring中,Bean的Early Reference阶段使用的是Spring的三级缓存,并且Spring会将Bean的原始对象放入到三级缓存中,以便在解决循环依赖时使用。在这个阶段,Spring会为当前Bean创建一个ObjectFactory实例,并将其放入到三级缓存中。这个ObjectFactory实例会被用来解决循环依赖问题,实现Bean的提前暴露。
具体来说,当存在循环依赖的时候,Spring会将当前Bean的原始对象放入到三级缓存中,并使用ObjectFactory来提前暴露这个Bean。ObjectFactory是一个工厂接口,它的作用是延迟实例化Bean,通过调用getObject()方法来获取Bean实例。在解决循环依赖时,Spring会通过ObjectFactory来获取Bean的原始对象,然后进行依赖注入,从而避免了循环依赖问题。
在Spring中,Bean的Early Reference阶段使用的属性包括:
1. beanName:当前Bean的名称。
2. beanFactory:当前Bean所属的BeanFactory。
3. targetBeanName:当前Bean所依赖的目标Bean的名称。
4. objectFactory:用来提前暴露Bean的ObjectFactory实例。
阅读全文