Spring加载XML的过程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring加载XML的过程相关的知识,希望对你有一定的参考价值。
参考技术A 首先,Spring加载配置文件是在refresh#obtainFreshBeanFactory方法中进行的。逻辑是在loadBeanDefinitions方法中进行的,Spring对loadBeanDefinitions方法做了很多重载。
在new ResourceEntityResolver(this)中
这里初始化了xsd/dtd的映射类,现在一般是使用xsd。
PluggableSchemaResolver#resolveEntity方法会读取META-INF/Spring.schemas文件,该文件配置的是kv数据,k是xsd的网络地址,v是本地地址,为了防止在未联网的情况下解析不了标签。
这里遍历了配置文件数组
doLoadDocument加载了配置文件主要看registerBeanDefinitions方法
parseBeanDefinitionElement(
Element ele, String beanName, @Nullable BeanDefinition containingBean)
在这个方法中就是解析标签中的属性了,将BeanDefinition创建出来,把属性set到BeanDefinition中
如何让是spring启动时加载一个类。这里类实现了读取xml配置数据到内存中(不是属性文件)
<bean id="readXmlService" class="com.xxx.xxx.readXmlServiceImpl" init-method="init"></bean>这样配置你的读取xml的服务,spring框架会在启动的时候自动跑 readXmlServiceImpl中的init方法,所以你只要将读取xml的过程放到init方法里,那在spring启动的时候就会自动将xml中数据读取到内存中。
参考技术A 只要你把这个类配置到了applicationContext.xml或其他Spring配置文件中就可以在启动时加载这个类了。xml配置的数据会自动由Spring注入 参考技术B 可以实现的以上是关于Spring加载XML的过程的主要内容,如果未能解决你的问题,请参考以下文章