那麼我們就将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方法。