- Bean的建立,由BeanFactory讀取Bean定義文件,生成各個實例。
- setter注入,執行Bean的屬性依賴注入。
- BeanNameAware的setBeanName(), 如果實現該接口,則執行其setBeanName方法。
- BeanFactoryAware的setBeanFactory(),如果實現該接口,則執行其setBeanFactory方法。
- BeanPostProcessor的processBeforeInitialization(),如果有關聯的processor,則在Bean初始化之前都會執行這個實例的processBeforeInitialization()方法。
- InitializingBean的afterPropertiesSet(),如果實現了該接口,則執行其afterPropertiesSet()方法。
- Bean定義文件中定義init-method。
- BeanPostProcessors的processAfterInitialization(),如果有關聯的processor,則在Bean初始化之前都會執行這個實例的processAfterInitialization()方法。
- DisposableBean的destroy(),在容器關閉時,如果Bean類實現了該接口,則執行它的destroy()方法。
10.Bean定義文件中定義destroy-method,在容器關閉時,可以在Bean定義文件中使用“destory-method”定義的方法。
簡單回答springbean生命週期就是:
第一,實例化(必須的一步)構造函數對象。第二,裝配(可選),爲屬性賦值。第三,回調(可選),(容器-控制類和組件-回調類)。第四,初始化(init-method=" “)。第五,就緒。第六,銷燬(destroy-method=” ")。