回顾了一下一上几节,感觉不是很清晰,同样是针对这个从文件中注入Bean到SpringBeanFactory
这个过程,作了如下的流程图:
整体的流程图:
拆分xmlBeanFactory这个super()操作,主要是加载父级的beanFactory。在这个里面父级元素为null
第三步是这个的核心,loadBeanDefinition(resource)的具体流程
以上三步是大概的流程,最后一步中,读取xml是在Document
类中具体完成的,但是前置的一些工作在XmlBeanDifinitionReader
中完成。
doLoadDocument通过使用DocumentLoader对象来加载Document对象,但这里在使用DocumentLoader对象之前还需要做以下5个准备工作
- 获取DocumentLoader对象。
- 获取EntityResolver对象。
- 获取ErrorHandler对象。
- 获取xml验证模式。
- 设置xml命名空间是否敏感
下面是具体如何获取EntityResolver和Xml验证模式的流程图:
当取到Document以后,registerBeanDefinitions操作:
开始注册进入Spring容器: