Spring容器的refresh方法

refresh方法中调用方法的作用

1.synchronized代码块,给容器refresh加锁,避免容器处在refresh阶段,容器进行了初始化或销毁的操作

2.prepareRefresh //调用容器准备刷新的方法,获取容器当前时间,同时给容器设置同步标识

3.obtainFreshBeanFactory //告诉子类启动refreshBeanFactory方法,Bean定义资源文件的载入从子类的refreshBeanFactory()方法启动,里面有抽象方法,针对xml配置,最终创建内部容器,该容器负责Bean的创建与管理,此步会进行BeanDefinition的注册

4.prepareBeanFactory //注册一些容器中需要的系统Bean.例如classLoader,beanFactoryPostProcessor等  

5.postProcessBeanFactory //允许容器的子类去注册postProcessor

6.invokeBeanFactoryPostProcessors //调用容器注册的容器级别的后置处理器

7.registerBeanPostProcessors //向容器注册Bean级别的后置处理器

8.initMessageSource //初始化国际化配置

9.initApplicationEventMulticaster //初始化事件发布者组件

10.onRefresh //在单例Bean初始化之前预留给子类初始化其他特殊bean的口子

11.registerListeners //向前面的事件发布者注册事件监听者

12.finishBeanFactoryInitialization //设置系统级别的服务,实例化所有非懒加载的单例

13.finishRefresh //触发初始化完成的回调方法,并发布容器刷新完成的事件给监听者

14.resetCommonCache //重置Spring内核中的公用缓存

 

你可能感兴趣的:(Spring)