場景一:成員變量引入即A依賴B,B依賴A
1. 在finishBeanFactoryInitialization中,開始初始化A,毋庸置疑通過反射
2. 之後【非完美對象】開始設置屬性字段,此時發現需要一個B的對象。同時已標記A處於正在初始化階段
3. 顯然接下來,開始去初始化B的對象,同樣的手法,到設置屬性階段,發現需要A對象
4. 於是乎,spring又開始去初始化對象A的依賴,此時先從緩存singletonObjects去取,沒有再去看是否正處於初始階段,是則再從緩存earlySingletonObjects中取,再沒有,則看是否存在allowEarlyReference,是則從singletonFactories中取
5. 將早期對象A設置到B中,再把B設置到A中
spring是如何解決循環依賴的【白話版】
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Ubuntu軟件安裝與刪除命令
攻城无数
2020-07-08 12:24:06
Hutool工具Day02-hutool-core模塊
攻城狮Chova
2020-07-08 02:21:30
Hutool工具Day01-Hutool工具基本概念
攻城狮Chova
2020-07-08 01:44:39
RabbitMQ的安裝與入門
早就戒了
2020-07-07 19:59:03
談談RabbitMQ
早就戒了
2020-07-07 19:59:03
Redis數據結構及其常用命令
早就戒了
2020-07-07 19:59:03
Android PackageManagerService流程詳細分析(五)之packages
Rjdeng
2020-07-07 19:20:48
iOS中製作動態鏈接庫Framework
一步一迹
2020-07-07 12:41:01
Win 7安裝IIS 4.0 框架
叶落无痕0826
2020-07-06 11:26:14
Android 7.1 APP 啓動流程分析
ChaoLi_Chen
2020-07-06 11:14:13
Android 7.1 系統 部分功能修改 彙總
ChaoLi_Chen
2020-07-06 11:14:13
Common Clock Framework系統結構--wowo
Wu_Being
2020-07-06 08:02:30
Android OS開發代碼-立哥開發
小可爱J 专业嵌入式开发
2020-07-05 23:20:16
USB MIC從識別到選擇的流程framework層記錄
_Kevin_Chen_
2020-07-05 21:38:57