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()方法。
注意:以上的生命周期方法可以通过实现相关的接口或使用注解的方式来定义。