第一章-Spring5.0源碼分析環境搭建
1、xml
答案
:
默認單例,啓動會報錯,bean不允許重複
運行結果:
2. config類 @bean
map:
運行結果
:
3、註解加載,@Service
運行結果
:
4、打印加載的類:
運行結果
:
5、spring默認單例 getBean();
運行結果
:
6、多例註解 @scope
默認singleton,單例
prototype:多例
運行結果
:
7、Spring裝配Bean懶漢式與餓漢式
1、問題:
答案:
1、無註解: 無參構造先執行。默認餓漢式
運行結果
:
2、加@lazy(true),懶漢式,用到再加載。無參構造後執行
灰色,@lazy默認true懶加載
運行結果
:
源碼:
默認值true:
3、@lazy(false) 不是懶加載,餓漢式,一啓動就加在。無參函數先執行
運行結果
:
總結
:
默認創建對象是餓漢式,啓動的時候就創建對象
當在類上用@lazy註解,表示懶漢式,使用對象的,獲取對象的時候纔會被初始化,被創建
8、ComponentScan排除用法
源碼
:
掃包方法:
運行結果
:
只有service,沒有@controller 和 @Repository註解的類
不是掃包注入的:
排除@service,不會再注入到spring容器中了
運行會報錯:
註釋後的運行結果:
沒有userService類
第二章-Spring5.0核心啓動註解
1、註解
第三章-SpringBean的生命週期