javascript
Spring Bean的生命周期(详细)
Bean 生命周期的整個執行過程描述如下。
1)根據配置情況調用 Bean 構造方法或工廠方法實例化 Bean。
2)利用依賴注入完成 Bean 中所有屬性值的配置注入。
3)如果 Bean 實現了 BeanNameAware 接口,則 Spring 調用 Bean 的 setBeanName() 方法傳入當前 Bean 的 id 值。
4)如果 Bean 實現了 BeanFactoryAware 接口,則 Spring 調用 setBeanFactory() 方法傳入當前工廠實例的引用。
5)如果 Bean 實現了 ApplicationContextAware 接口,則 Spring 調用 setApplicationContext() 方法傳入當前 ApplicationContext 實例的引用。
6)如果 BeanPostProcessor 和 Bean 關聯,則 Spring 將調用該接口的預初始化方法 postProcessBeforeInitialzation() 對 Bean 進行加工操作,此處非常重要,Spring 的 AOP 就是利用它實現的。
7)如果 Bean 實現了 InitializingBean 接口,則 Spring 將調用 afterPropertiesSet() 方法。
8)如果在配置文件中通過 init-method 屬性指定了初始化方法,則調用該初始化方法。
9)如果 BeanPostProcessor 和 Bean 關聯,則 Spring 將調用該接口的初始化方法 postProcessAfterInitialization()。此時,Bean 已經可以被應用系統使用了。
10)如果在 中指定了該 Bean 的作用范圍為 scope=“singleton”,則將該 Bean 放入 Spring IoC 的緩存池中,將觸發 Spring 對該 Bean 的生命周期管理;如果在 中指定了該 Bean 的作用范圍為 scope=“prototype”,則將該 Bean 交給調用者,調用者管理該 Bean 的生命周期,Spring 不再管理該 Bean。
11)如果 Bean 實現了 DisposableBean 接口,則 Spring 會調用 destory() 方法將 Spring 中的 Bean 銷毀;如果在配置文件中通過 destory-method 屬性指定了 Bean 的銷毀方法,則 Spring 將調用該方法對 Bean 進行銷毀。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Spring Bean的生命周期(详细)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JdbcTemplate中的query方
- 下一篇: gradle idea java ssm