IOC容器的初始化的三种方式
- XmlBeanFactory
- ClassPathXmlApplicationContext
- AnnotationConfigApplicationContext
三种初始化方式流程图:

分析: 由调用图可以看到不论使用哪一种方式去初始化IOC容器, 注册BeanDefinition的工作都是由DefaultListableBeanFactory的registerBeanDefinition(String beanName, BeanDefinition beanDefinition)方法完成的, 在DefaultListableBeanFactory类中维护着一个Map集合: beanDefinitionMap, 这个集合维护着Bean定义对象的信息, 以Bean名称为键; 对于XmlBeanFactory和ClassPathXmlApplicationContext这两种方式初始化容器时都是直接注册BeanDefinition, 而AnnotationConfigApplicationContext会先去注册处理器, 后面在激活处理器类时去注册BeanDefinition
注: 流程图较复杂, 感兴趣的可以仔细分析下, 可以参考流程图中的主线去阅读源码, 有很大帮助; 有不对的地方欢迎指出!

最低0.47元/天 解锁文章
987

被折叠的 条评论
为什么被折叠?



