美文网首页
Spring加载XML的过程

Spring加载XML的过程

作者: 养一只tom猫 | 来源:发表于2022-05-06 10:39 被阅读0次

首先,Spring加载配置文件是在refresh#obtainFreshBeanFactory方法中进行的。


image.png
image.png
image.png

逻辑是在loadBeanDefinitions方法中进行的,Spring对loadBeanDefinitions方法做了很多重载。


image.png

在new ResourceEntityResolver(this)中

image.png
image.png

这里初始化了xsd/dtd的映射类,现在一般是使用xsd。
PluggableSchemaResolver#resolveEntity方法会读取META-INF/Spring.schemas文件,该文件配置的是kv数据,k是xsd的网络地址,v是本地地址,为了防止在未联网的情况下解析不了标签。

下一个loadBeanDefinitions(XmlBeanDefinitionReader reader)方法 image.png
这里将配置文件路径传下去了,配置文件路径是在构造函数的setConfigLocations中赋值的
image.png

这里遍历了配置文件数组


image.png
在这里将配置文件路径转成了Resource[]对象
image.png
随后遍历Resource[]
image.png
image.png
image.png
在这里终于看到了真正干活的方法doLoadBeanDefinitions
image.png

doLoadDocument加载了配置文件主要看registerBeanDefinitions方法


image.png
image.png
doRegisterBeanDefinitions(Element root)
image.png
image.png
image.png
这里会去判断标签做相应处理
主要看一下Bean标签
image.png
parseBeanDefinitionElement(Element ele)
image.png image.png

parseBeanDefinitionElement(
Element ele, String beanName, @Nullable BeanDefinition containingBean)



在这个方法中就是解析标签中的属性了,将BeanDefinition创建出来,把属性set到BeanDefinition中

相关文章

网友评论

      本文标题:Spring加载XML的过程

      本文链接:https://www.haomeiwen.com/subject/cbazyrtx.html