Spring底层原理与源码
Bean生命周期步骤详情
- UserService -> 推断构造方法 -> 普通对象 -> 依赖注入(给对象赋值) -> 初始化前(@PostConstruct) -> 初始化(afterPropertiesSet()) -> 初始化后(AOP) -> 代理对象 ->Map<beanName, Bean对象> : 单例池
Bean实例化 -> JVM实例化
Bean初始化 -> afterPropertiesSet()
![]()
事务

循环依赖和三级缓存
- singletonObjects
保存的是bean经过了完整的生命周期之后的一个bean对象 - earlySingletonObjects
在出现了循环依赖的情况下,某个bean(AServices)被循环依赖了,有可能会提前产生一个AServices的代理对象,存到二级缓存在去,保存单例 - singletonFactories
打破循环依赖,
![]()



浙公网安备 33010602011771号