[TOC](【後端面經-Spring】Spring 中 bean 的生命周期) ## 1.bean簡介 - bean是一個對象,是由Spring中的IoC創建、實例化的對象。 - 一般的java對象,使用的時候創建,不需要就釋放記憶體進行銷毀,而bean的生命周期更加複雜 - 作用域 - `singl ...
目錄
1.bean簡介
- bean是一個對象,是由Spring中的IoC創建、實例化的對象。
- 一般的java對象,使用的時候創建,不需要就釋放記憶體進行銷毀,而bean的生命周期更加複雜
- 作用域
singleton
:預設單例形式,唯一的bean實例。prototype
:每次請求都會創建一個新的bean實例。request
:每次HTTP請求都會創建一個新的bean實例,該作用域僅在當前http request內有效。session
:每次HTTP請求都會創建一個新的bean實例,該作用域僅在當前HTTP session內有效。global-session
:全局session作用域,僅僅在基於portlet的web應用中才有意義,Spring5已經沒有了。
2. 生命周期
- 實例化/創建
- 依靠反射進行實例化,而不需要像一般的java對象一樣手動創建;
- 屬性填充
- 使用
依賴註入
進行屬性填充;
- 初始化
- 完成初始化之後,bean可以使用;
- 銷毀
- 容器關閉或者停止服務的時候,銷毀該對象;
- 類比
- 人的一生:出生->學習->成長->死亡
- bean的一生:實例化->屬性填充->初始化->銷毀
3. 參考資料
- 阿裡雲開發社區-《聊透 Spring bean 的生命周期》
- 鏈接
- 細緻全面講述了 bean 的生命周期,輔以代碼理解。
- 掘金社區-《Spring Bean 生命周期,好像人的一生》
- 鏈接
- 用形象的社會現象類比
bean
對象的生命周期,易於理解,並且用一個PersonBean
作為示例,給出生命周期對應的代碼。
- SegmentFault- 《一文讀懂 Spring Bean 的生命周期》
- 鏈接
- 詳細介紹了bean對象的概念,以及bean的生命周期