Spring 源码(十一)Spring流程汇总

Spring 容器初始化流程

Spring 源码(十一)Spring流程汇总

Spring 容器初始化流程大致流程如下:

  1. this():注册内置的BeanPostProcessor的BeanDefinition到容器
  2. register(annotatedClasses):注册配置类 BeanDefinition 到容器
  3. prepareRefresh():初始化前的准备工作,列如对系统属性或者环境变量进行验证
  4. obtainFreshBeanFactory():初始化 BeanFactory
  5. prepareBeanFactory(beanFactory):对 BeanFactory 进行各种功能的填充,比如对表达式的支持等
  6. postProcessBeanFactory(beanFactory):留给子类扩展用
  7. invokeBeanFactoryPostProcessors(beanFactory):执行BeanFactoryPostProcessor后置处理器
  8. registerBeanPostProcessors(beanFactory):创建并注册所有的BeanPostProcessor后置处理
  9. initMessageSource():初始化消息组件(国际化,消息绑定,消息解析)
  10. initApplicationEventMulticaster():初始化容器的事件机制
  11. onRefresh():初始化其他特殊Bean(留给子类做扩展用)
  12. registerListeners():注册监听器(ApplicationListener