Spring框架(四) 三级缓存与循环依赖

1.循环依赖
首先我们需要明白什么是循环依赖 , 打个比方 , 就是说A对象在创建的过程中 , 需要依赖注入B对象 , 但是B对象没有 , 就需要去创建 , 而在创建B对象的过程中又需要注入A对象 , A对象此时还在创建中,所以就构成了一个死循环 , A,B相互依赖 这样的关系被成为循环依赖(当然 , 可能还会有其他的情况),下面我们就来看看Spring是如何让解决循环依赖的

2.一二三级缓存
三个缓存对应着三个不同的Map

一级:singletonObjects
这个缓存也就是单例池 , 它存放的是完整的经过Bean生命周期的Bean

二级:earlySingletonObject
这个缓存存放的一个残疾Bean , 怎么理解呢?就是创建到一半就放进去了

三级:singletonFactories
这个缓存存放的是ObjectFactory , 表示用来 创建早期Bean 对象的工厂
3.情况一
A , B对象相互依赖

比如现在有两个Service , 分别是AService和BService

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!