原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11450415.html
Spring Bean生命周期比较复杂,可以分为创建和销毁两个过程。
首先,创建Bean会经过一系列的步骤,主要包括:
-
实例化Bean对象。
-
设置Bean属性。
-
如果通过各种Aware接口声明了依赖关系,则会注入Bean对容器基础设施层面的依赖。具体包括BeanNameAware、BeanFactoryAware和ApplicationContextAware,分别会注入Bean ID、Bean Factory或者ApplicationContext。
-
调用BeanPostProcessor的前置初始化方法postProcessBeforeInitialization。
-
如果实现了InitializingBean接口,则会调用afterPropertiesSet方法。
-
调用Bean自身定义的init方法。
-
调用BeanPostProcessor的后置初始化方法postProcessAfterInitialization。
-
创建过程完毕。
第二,Spring Bean的销毁过程会依次调用DisposableBean的destroy方法和Bean自身定制的destroy方法。