spring源码学习(二)获取Document
来源:互联网 发布:未来软件小说 编辑:程序博客网 时间:2024/06/01 10:00
这篇主要是学习doLoadBeanDefinitions函数中的doLoadDocument方法,用来获取Document对象
函数里只有2行代码。第一行代码把要解析的东西转换为Document对象,第二行通过registerBeanDefinitions行数来注册对象。
进入doLoadDocument,发现它调用了DefaultDocumentLoader的loadDocument方法。
DefaultDocumentLoader中的loadDocument方法:
先创建DocumentBuilderFactory,然后通过DocumentBuilderFactory来创建DocumentBuilder,用DocumentBuilder来解析inputSource,然后返回Document对象。
其中的entityResolver参数是由getEntityResolver()传入的,entityResolver的作用是项目本身就可以提供一个寻找dtd声明的方法,可以避免通过网络来寻找相应声明的麻烦。
在DelegatingEntityResolver的构造器中,为dtd和xsd都实例化了EntityResolver对象。
但是在解析过程中会根据文件的类型来选择用哪个EntityResolver来处理
以dtd的resolveEntity为例,是BeansDtdResolver中的resolveEntity
可以看到这个函数将dtd文件转换为了InputSource类型。
值得注意的是:dtd是截取SystemId最后的XX.dtd在当前路径下找,xsd是到META-INF/Spring.schemas文件找到SystemId对应的XSD文件加载。
- spring源码学习(二)获取Document
- Spring源码深度解析(七)获取Document
- 【Spring源码从入门到精通】(七)获取Document
- Spring源码深度解析(七)获取Document
- Spring源码学习(二)------ AOP
- Spring源码学习(二)------ AOP
- Spring源码学习(二)------ AOP
- Spring源码学习(二)------ AOP
- Spring源码学习(二)------ AOP
- Spring源码学习(二)------ AOP
- Spring源码学习(二)ContextLoaderListener
- spring源码学习--FileSystemXmlApplicationContext(二)
- SPRING源码学习之路(二)
- 解析Spring源码(6)--Document
- spring源码学习---bean获取
- Spring源码学习--Spring配置文件解析BeanDefinitionReader(二)
- IoC源码-获取Document实例
- Spring源码学习笔记(四)-Aop获取增强、切点
- 在Winform中使用C#异步优化耗时操作
- 运行shell脚本,错误:-bash: ./xxx.sh: /bin/bash^M: bad interpreter: No such file or directory
- 关于arcgis for Android解除touch监听器
- 今日头条(values下的资源文件)
- oracle的db.properties
- spring源码学习(二)获取Document
- ServiceStack.Redis常用操作
- 次小生成树
- Spring 服务启动 自动执行(ApplicationListener)
- canvas图形处理和进阶用法
- VS2015连接mySQL数据库
- W3C标准及规范(面试经常被问到)
- 远程 mac mysql 启动 error 的解决方法
- 邮箱服务器(一) 简介和cmd访问smpt和pop3服务器