Spring笔记02-Spring容器
来源:互联网 发布:盘点2016年网络流行语 编辑:程序博客网 时间:2024/06/05 16:26
Spring容器要干的活是解析Bean的配置文件和注解,然后实例化Bean。
要做解析的工作,就需要一个Reader;要做实例化的工作,就需要一个BeanFactory。
先讲解析Bean的配置文件。配置文件可以是文件、URL资源、InputStream资源等,Spirng把这些配置文件封装为Resource,然后从这个Resource实例读取输入流,通过输入流构建InputSource(注意InputSource这个类并不是来自Spring,它的的全名是org.xml.sax.InputSource,就是我们常用来解析xml文件的那个)。有了Resource实例和InputSource实例就可以调用doLoadBeanDefinitons(inputsource,resource)了,这个函数是解析的核心。那为什么有了InputSource实例,我们还要用Resource实例?后面马上讲到。
doLoadBeanDefinitons函数做了三件事:
(1).获取对XML文件的验证模式
(2).加载XML文件,得到对应的Document
(3).根据返回的Document注册Bean信息
验证XML文件是为了保证它的正确性,验证模式主要有DTD和XSD。怎么判断XML文件使用的是哪种验证模式,这里就回答了第一个问题,Spring通过resource.getInputStream(),然后new BufferReader(new InputStreamReader(inputStream)),通过这个BufferReader实例一行一行的读原文件,如果当前行否包含了‘DOCTYPE’,那验证模式就是DTD,否则就是XSD。
用sax获得XML文件对应的Document实例,这里和我们平时使用sax的方式一样。
然后通过Document实例doc.getDocumentElement()获得根root,调用函数doRegisterBeanDefinitons(root),函数doRegisterBeanDefinitons(root)再调用parseBeanDefinitions(root,this.delegate),这里就出现了两种情况:
(1).解析默认标签
(2).解析自定义标签
2017-07-26更新
- Spring笔记02-Spring容器
- Spring学习笔记-Spring容器
- spring学习笔记:Spring IOC容器
- Spring学习笔记-Spring容器中的Bean
- Spring笔记——Spring容器:ApplicationContext
- Spring Ioc容器阅读笔记
- Spring学习笔记:IOC容器
- Spring-02-IOC容器
- spring学习笔记:Spring IOC容器,Spring源码
- spring容器
- Spring容器
- spring 容器
- Spring容器
- spring容器
- spring容器
- Spring容器
- spring 容器
- Spring容器
- java常见证书类型和密钥库类型
- 后向传播算法“backpropragation”详解
- 使用VMware虚拟机在win10安装Ubuntu16.04
- c#委托
- Linux:GDB调试
- Spring笔记02-Spring容器
- bash 移动光标
- eclipse写了个JDBC程序却找不到文件却抛出java.io.FileNotFoundException 文件找不到错误
- 设计模式的征途—14.职责链(Chain of Responsibility)模式
- Windows下生成目录结构树
- 【解决方案】闭包函数在for循环中的使用案例——for循环绑定监听事件索引值总是最后一个
- HTTP协议
- ORACLER 日期转化成为字符串函数
- MHA实践