spring 三级缓存
2022-05-20 15:27:10 11 举报
spring 三级缓存
作者其他创作
大纲/内容
BeanA
升级的过程中,可以做一些扩展操作。
3
一级缓存SingletonObejctMap
三级缓存BeanFactoryMap
BeanB
循环依赖场景:1、构造方法注入(三级缓存无法解决循环依赖)2、set方法注入(@Autowired属性注入)场景:set方法注入class BeanA{ BeanB beanB; public void setBeanB(BeanB beanB){ this.beanB = beanB; }} class BeanB{ BeanA beanA; public void setBeanA(BeanA beanA){ this.beanA = beanA; }}xml:<bean id=\"beanA\" class=\"BeanA\"> <property name=\"beanB\" ref=\"beanB\"/></bean><bean id=\"beanB\" class=\"BeanB\"> <property name=\"beanA\" ref=\"beanA\"/></bean>
BeanA 在实例化的时候立马放入三级缓存中(提前暴露自己)
二级缓存early
BeanB创建完成后会放入一级缓存
1
成型的Bean
BeanB 在创建过程中发现依赖BeanA,会先去三级缓存中使用未成形的BeanA,并将BeanA升级到二级缓存中。
2
使用一级缓存中的BeanB
尚未成型的Bean
收藏
收藏
0 条评论
下一页