Spring的Bean的生命周期

186 阅读1分钟

Spring的Bean的生命周期:

  • Bean的BeanDefiniton在解析,由Annotation或者XML、Properties加载,解析并转化为BeanDefiniton.
  • 将BeanDefiniton注册到BeanFactory的容器.然后通过BeanFactoyPostProcess,可以Bean的BeanDefinition的修改.
  • 接下来就是对Bean的实例化的前置处理、实例化、后置处理,然后是Aware回调,即是ApplicationContextAwareProcessor的处理,主要对EnvironmentAware、EmbeddedValueResolverAware、ResourceLoaderAware、ApplicationEventPublisherAware、MessageSourceAware、ApplicationContextAware的接口的回调.
  • Bean的实例化,调用createBeanInstance进行实例化创建对象。
  • 调用populateBean进行属性填充.
  • 进行Aware接口的回调,主要是BeanNameAware、BeanClassLoaderAware、 BeanFactoryAware的回调.
  • 调用BeanPostProcess postProcessBeforeInitialization方法.
  • 调用InitializingBean的afterPropertiesSet方法.
  • 执行自定义的init-method方法.
  • 调用BeanPostProcess postProcessAfterInitialization方法,返回 BeanWrapper对象.
  • 销毁bean的销毁前置处理.
  • 销毁bean.
  • 销毁bean的后置处理.

总结 今天主要对Spring的bean的生命周期的各个流程的梳理,后续, 会对各个流程的 源码的分析.