Spring循环依赖三级缓存

A依赖B,B依赖A
Spring 创建,加载到bean工厂:A在创建的过程,发现用到了B对象,于是把A丢在了三级缓存中,接着去创建B对象
在创建B对象的过程中发现需要依赖A,(单例模式在会存在缓存)于是就去一级缓存去查找,没有就去二级,还没有就去三级,最后发现A对象,于是就把A放到二级缓存中,在把三级缓存中的A删掉
此时B已经创建好了并把自己放到一级缓存中(此时B中属性还没有赋值),于是创建A对象,接着spring就让A就拿着这个没有属性值的B创建了A这个bean,并将A放到一级缓存中

浙公网安备 33010602011771号