做威客有什么靠譜網(wǎng)站2022最好的百度seo
1.bean的生命周期
我們平常經(jīng)常使用類似于new Object()的方式去創(chuàng)建對(duì)象,在這個(gè)對(duì)象沒有任何引用的時(shí)候,會(huì)被gc給回收掉。而對(duì)于spring而言,它本身存在一個(gè)Ioc容器,就是用來管理對(duì)象的,而對(duì)象的生命周期也完全由這個(gè)容器所控制。Spring 中每個(gè) Bean 的生命周期如下:
2.主要步驟簡(jiǎn)述
- 實(shí)例化 Bean:通過反射調(diào)用構(gòu)造方法實(shí)例化對(duì)象。
- 依賴注入:裝配 Bean 的屬性。
- 實(shí)現(xiàn)了 Aware接口的 Bean,執(zhí)行接口方法(如創(chuàng)建bean的名稱等等):如順序執(zhí)行 BeanNameAware、BeanFactoryAware、ApplicationContextAware的接口方法。
- Bean 對(duì)象初始化前,循環(huán)調(diào)用實(shí)現(xiàn)了 BeanPostProcessor 接口的預(yù)初始化方法(postProcessBeforeInitialization)。
- Bean 對(duì)象初始化:順序執(zhí)行 @PostConstruct 注解方法、InitializingBean 接口方法、init-method 方法。
- Bean 對(duì)象初始化后,循環(huán)調(diào)用實(shí)現(xiàn)了 BeanPostProcessor 接口的后初始化方法(postProcessAfterInitialization)。
- 容器關(guān)閉時(shí),執(zhí)行 Bean 對(duì)象的銷毀方法,順序是:@PreDestroy 注解方法、DisposableBean 接口方法、destroy-method。
3.一句話概述
spring bean的生命周期主要會(huì)經(jīng)過3個(gè)關(guān)鍵步驟,即實(shí)例化對(duì)象、給對(duì)象進(jìn)行屬性注入、對(duì)象初始化,只不過在進(jìn)行對(duì)象初始化之前或之后有可能會(huì)進(jìn)行一些自定義的處理,比如對(duì)象實(shí)現(xiàn)了BeanNameWare接口,可以用來設(shè)置bean對(duì)象的名稱,也比如對(duì)象實(shí)現(xiàn)了
BeanPostProcessor接口,就可以增加一些自定義的邏輯在該接口的兩個(gè)方法中。當(dāng)然對(duì)象初始化完成后,最后還可以增加對(duì)象的銷毀方法,讓對(duì)象在銷毀時(shí)進(jìn)行一些自定義的操作。