Spring解决循环依赖的原理图
2022-09-14 12:29:41   0  举报             
     
         
 spring三级缓存
    作者其他创作
 大纲/内容
 getBean(beanA)
  beanB获取beanA的早期引用
    添加到一级缓存
  返回beanA的原始对象
  最后,完成beanA的实例化
  getSingleton(beanA)
  添加到三级缓存
  创建bean对象
  getBean(beanB)
  创建依赖的beanB
  getObjectForBeanInstance(...)
  尝试从各级缓存中获取bean
  beanB完成实例化和初始化
  getSingleton(beanA)==NULL
  getSingleton(beanB)==NULL
  开始创建bean实例
  属性填充时,发现依赖B,接着去找B
  属性注入
  先创建beanA
  尝试从各级缓存获取bean
  由于第1步已经添加了缓存所以这里不为空并将beanA从三级缓存移入二级缓存
   
 
 
 
 
  0 条评论
 下一页
  
   
   
   
  
  
  
  
  
  
  
  
 