Spring ApplicationContext refresh()源码分析
-
AbstractApplicationContext 的refresh()
- prepareRefresh();//Context刷新
- ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();// 这个是一个将BeanFactoy的加载的过程,这个方法执行完毕后,所有的定义的BeanDefinition和其他的对象都会被加载到当前
- prepareBeanFactory(beanFactory);//对Bean Factory一些信息配置(setBeanClassLoader addBeanPostProcessor(后置处理器)等)
- postProcessBeanFactory(beanFactory);//允许在上下文子类中对bean工厂进行后处理
- invokeBeanFactoryPostProcessors(beanFactory);//触发后置处理器
- registerBeanPostProcessors(beanFactory);//注册拦截bean创建的后置处理器
- protected void initMessageSource()//初始化MesageSource 国际化
- initApplicationEventMulticaster();//初始化事件广播
- onRefresh()//这个方法是一个模板方法,是交给子类来扩展的
- registerListeners();//注册所有的Listener
- finishBeanFactoryInitialization(beanFactory);//实例化所有的非延迟加载的单例Bean对象
- finishRefresh();//发布相关的事件
- resetCommonCaches()//清空盖清空的cache
版权声明:本文为mengml_smile原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。