在Spring框架中,Bean的生命周期大致可以分为以下几个阶段:
-
实例化:首先创建Bean的实例。
-
属性填充:通过反射机制将Bean的属性值填充进去。
-
Bean名称的设置:如果Bean实现了
BeanNameAware
接口,Spring将Bean的ID传递给setBeanName()
方法。 -
Bean工厂的设置:如果Bean实现了
BeanFactoryAware
接口,Spring将调用setBeanFactory()
方法,将BeanFactory
容器实例传入。 -
预初始化:如果Bean实现了
BeanPostProcessor
接口,Spring将调用它们的postProcessBeforeInitialization()
方法。 -
初始化:如果Bean实现了
InitializingBean
接口,Spring将调用其afterPropertiesSet()
方法。类似地,如果Bean使用了init-method
声明初始化方法,该方法也会被调用。 -
后初始化:如果Bean实现了
BeanPostProcessor
接口,Spring将调用它们的postProcessAfterInitialization()
方法。 -
使用Bean:此时,Bean已经准备好被系统使用了。
-
销毁:当容器关闭时,如果Bean实现了
DisposableBean
接口,Spring将调用其destroy()
方法。同样,如果Bean使用了destroy-method
声明销毁方法,该方法也会被调用。
在总体上,大致分为四个阶段:实例化,属性填充,初始化 ,销毁