更新時(shí)間:2023-02-14 16:37:04 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽3236次
bean 的生命周期
(一)傳統(tǒng)bean 的生命周期
在傳統(tǒng)的java 應(yīng)用中,bean 的生命周期很簡(jiǎn)單。使用Java關(guān)鍵字new 進(jìn)行實(shí)例化, 然后bean 就可以使用了,
一旦該bean 不再被使用,則由Java自動(dòng)進(jìn)行垃圾回收。
(二)Spring 的生命周期
Spring 容器中的bean的生命周期就顯得相對(duì)復(fù)雜多了。
Spring 對(duì)bean 進(jìn)行實(shí)例化。
Spring 將值和bean的引用注入到bean對(duì)應(yīng)的屬性中。
如果bean實(shí)現(xiàn)了BeanNameAware接口,Spring將bean的ID傳遞給setBean-Name() 方法。
如果bean 實(shí)現(xiàn)了BeanFactoryAware接口,Spring將調(diào)用setBeanFactory() 方法,將BeanFactory容器實(shí)例傳入。
如果bean實(shí)現(xiàn)了ApplicationContextAware接口,Spring將調(diào)用setApplicationContext() 方法,將bean所在的應(yīng)用上下文的引用傳入進(jìn)來(lái)。
如果bean實(shí)現(xiàn)了BeanPostProcessor接口,Spring將調(diào)用它們的post-ProcessBeforeInitialization() 方法
如果bean實(shí)現(xiàn)了InitializingBean接口,Spring將調(diào)用它們的after-PropertiesSet()方法。類似的,如果bean使用init-method聲明了初始化方法,該方法也會(huì)被調(diào)用。
如果bean實(shí)現(xiàn)了BeanPostProcessor接口,Spring將調(diào)用它們的post-ProcessAfterInitialization() 方法。
此時(shí), bean 已經(jīng)準(zhǔn)備就緒,可以被應(yīng)用程序使用了,它們將一直駐留在應(yīng)用上下文中,直到該應(yīng)用上下文被銷毀。
如果bean實(shí)現(xiàn)了DisposableBean接口,Spring將調(diào)用它的destory()接口方法。同樣,如果bean使用destroy-method聲明了銷毀方法,該方法也會(huì)被調(diào)用。
以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"bean生命周期的詳細(xì)講解",希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您務(wù)。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)