天天看點

高頻面試題—聊一下Bean的生命周期

那麼我們就将Bean的生命周期大概分為三個大點來說明。

一. 建立Bean,并且準備Bean的一些附屬方法

二. 使用Bean

三. 銷毀Bean

讓我們來圍繞這三點說一下吧。

首先,Bean會由程式來調用其構造函數進行初步構造。

然後,通過依賴注入方式對Bean的各屬性,或者說是各setter方法進行注入資訊。

其實如果沒有其他的特殊實作的話,上面兩步就已經建立Bean完成了;不過其中還會存在幾個接口的實作,如果Bean實作了特定的幾個接口,這個時候也會在建立Bean的過程中多出幾步操作。

當Bean本身實作了BeanNameAware接口,這個時候會根據接口方法,來設定Bean的name。

當Bean本身實作了BeanFactoryAware接口,這個時候會根據接口方法,将BeanFactory設定給Bean。

當Bean本身實作了ApplicationContextAware接口,這個時候Spring會将目前Bean引入到應用上下文中,也就是說可以通過ApplicationContext擷取到目前Bean。

當Bean本身實作了BeanPostProcessor接口時,則執行程式中的前置處理方法。

當Bean本身實作了InitializingBean接口時,這個時候還會執行afterPropertiesSet方法,進行配置的一個加載。

随後,就是執行自身的init方法,進行Bean的初始化。

最後,執行BeanPostProcessor中的後置處理方法,即建立完成。

使用Bean就沒有什麼技術含量了,這個就是業務層面上的使用過程了。

當使用完成後要銷毀時,這個時候會第一時間執行DisposableBean接口的destroy方法,随後再執行自身Bean自定義的destroy方法。