Spring Bean的生命周期可以分為以下幾個階段:
實例化(Instantiation):在容器啟動時,Spring根據配置信息或注解實例化Bean對象。
屬性賦值(Population of properties):Spring將通過依賴注入或屬性注入的方式,為Bean的屬性賦予相應的值。
初始化前(Initialization Callbacks):在Bean的所有屬性都被賦值之后,Spring會調用一些初始化回調方法,例如InitializingBean接口的afterPropertiesSet()方法或通過@Bean注解的initMethod屬性指定的方法。
初始化后(Initialization Callbacks):在初始化前階段之后,Spring會調用一些初始化后的回調方法,例如BeanPostProcessor接口的postProcessBeforeInitialization()方法。
銷毀前(Destruction Callbacks):在容器關閉或者Bean被銷毀之前,Spring會調用一些銷毀前的回調方法,例如DisposableBean接口的destroy()方法或通過@Bean注解的destroyMethod屬性指定的方法。
銷毀后(Destruction Callbacks):在銷毀前階段之后,Spring會調用一些銷毀后的回調方法,例如BeanPostProcessor接口的postProcessAfterInitialization()方法。
注意:以上的生命周期方法可以通過實現相關的接口或使用注解的方式來定義。