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