Spring Bean 生命周期流程

總結(jié)下 Spring Bean 生命周期流程,大概是這樣的:

  • Bean 容器找到配置文件中 Spring Bean 的定義。
  • Bean 容器利用 Java Reflection API 創(chuàng)建 Bean 的實(shí)例。
  • 如果涉及到屬性值,就利用 set 方法進(jìn)行設(shè)置。
  • 如果 Bean 實(shí)現(xiàn)了 BeanNameAware 接口,就調(diào)用 setBeanName() 方法,并傳入 Bean 的名字。
  • 如果 Bean 實(shí)現(xiàn)了 BeanClassLoaderAware 接口,就調(diào)用 setBeanClassLoader() 方法,以及傳入 ClassLoader 對(duì)象的實(shí)例。
  • 如果 Bean 實(shí)現(xiàn)了 BeanFactoryAware 接口,調(diào)用 setBeanClassLoader() 方法,傳入 ClassLoader 對(duì)象的實(shí)例。
  • 與上面的類似,如果實(shí)現(xiàn)了其他 Aware 接口,就調(diào)用相應(yīng)的方法。
  • 如果有和加載這個(gè) Bean 的 Spring 容器相關(guān)的 BeanPostProcessor 對(duì)象,執(zhí)行 postProcessBeforeInitialization() 方法
  • 如果 Bean 實(shí)現(xiàn)了 InitializingBean 接口,執(zhí)行 afterPropertiesSet() 方法。
  • 如果 Bean 在配置文件中的定義包含 init-method 屬性,執(zhí)行指定的方法。
  • 如果有和加載這個(gè) Bean 的 Spring 容器相關(guān)的 BeanPostProcessor 對(duì)象,執(zhí)行 postProcessAfterInitialization() 方法
  • 當(dāng)要銷毀 Bean 的時(shí)候,如果 Bean 實(shí)現(xiàn)了 DisposableBean 接口,執(zhí)行 destroy() 方法。
  • 當(dāng)要銷毀 Bean 的時(shí)候,如果 Bean 在配置文件中的定義包含 destroy-method 屬性,執(zhí)行指定的方法。
Spring Bean 生命周期流程
Spring Bean 生命周期流程
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容