spring ioc原理-容器初始化的大致流程

80 阅读1分钟

世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。

ClassPathXmlApplicationContext ->
通过super(parent)加载路径资源解释器并加载父容器环境->
加载配置文件的路径->
刷新容器:
首先通过synchronized保证线程安全->
刷新前的准备(时间、激活、属性占位符、监听、事件等等)->
刷新BeanFactory:
销毁原有的BeanFactory->
创建新的BeanFactory->
初始化BeanFactory->
加载BeanDefinitions:
解析xml->
生成BeanDefinition->
放入到Map;
FactoryBean使用前的准备(类加载器、回调函数、注册环境的默认Bean)->
允许子类后期处理->
调用注册为Bean的后期处理器->
注册拦截Bean创建的Bean处理器->
初始化信息源->
初始化事件组播->
刷新特殊的Bean->
注册监听器->
完成BeanFactory的初始化。

更多信息,请关注公众号:
在这里插入图片描述