1.bean簡介
- bean是一個對象,是由Spring中的IoC創(chuàng)建、實例化的對象。
- 一般的java對象,使用的時候創(chuàng)建,不需要就釋放內(nèi)存進行銷毀,而bean的生命周期更加復(fù)雜
- 作用域
-
singleton:默認單例形式,唯一的bean實例。 -
prototype:每次請求都會創(chuàng)建一個新的bean實例。 -
request:每次HTTP請求都會創(chuàng)建一個新的bean實例,該作用域僅在當(dāng)前http request內(nèi)有效。 -
session:每次HTTP請求都會創(chuàng)建一個新的bean實例,該作用域僅在當(dāng)前HTTP session內(nèi)有效。 -
global-session:全局session作用域,僅僅在基于portlet的web應(yīng)用中才有意義,Spring5已經(jīng)沒有了。
-
2. 生命周期
- 實例化/創(chuàng)建
- 依靠反射進行實例化,而不需要像一般的java對象一樣手動創(chuàng)建;
- 屬性填充
- 使用
依賴注入進行屬性填充;
- 初始化
- 完成初始化之后,bean可以使用;
- 銷毀
- 容器關(guān)閉或者停止服務(wù)的時候,銷毀該對象;
- 類比
- 人的一生:出生->學(xué)習(xí)->成長->死亡
- bean的一生:實例化->屬性填充->初始化->銷毀