spring生命週期

沙漠里的小鱼發表於2024-05-05

1:Bean的建立:

容器尋找Bean的定義資訊並將其例項化。

2:屬性注入:

使用依賴注入,Spring按照Bean定義資訊配置Bean所有屬性

3:BeanNameAware的setBeanName():

如果Bean類有實現org.springframework.beans.BeanNameAware介面,工廠呼叫Bean的setBeanName()方法傳遞Bean的ID。

4:BeanFactoryAware的setBeanFactory():

如果Bean類有實現org.springframework.beans.factory.BeanFactoryAware介面,工廠呼叫setBeanFactory()方法傳入工廠自身。

5:BeanPostProcessors的ProcessBeforeInitialization()

如果有org.springframework.beans.factory.config.BeanPostProcessors和Bean關聯,那麼其postProcessBeforeInitialization()方法將被將被呼叫。

6:initializingBean的afterPropertiesSet():

如果Bean類已實現org.springframework.beans.factory.InitializingBean介面,則執行他的afterProPertiesSet()方法

7:Bean定義檔案中定義init-method:

可以在Bean定義檔案中使用"init-method"屬性設定方法名稱例如:

如果有以上設定的話,則執行到這個階段,就會執行initBean()方法

8:BeanPostProcessors的ProcessaAfterInitialization()

如果有任何的BeanPostProcessors例項與Bean例項關聯,則執行BeanPostProcessors例項的ProcessaAfterInitialization()方法

1:DisposableBean的destroy()

在容器關閉時,如果Bean類有實現org.springframework.beans.factory.DisposableBean介面,則執行他的destroy()方法

2:Bean定義檔案中定義destroy-method

在容器關閉時,可以在Bean定義檔案中使用"destroy-method"屬性設定方法名稱,例如:

相關文章