竹笋

首页 » 问答 » 灌水 » 源码分析从SqlSessionFa
TUhjnbcbe - 2023/6/22 20:49:00

根据XML配置文件构建SqlSessionFactory

1.首先读取类路径下的配置文件,获取其字节输入流。

2.创建SqlSessionFactoryBuilder对象,调用内部的build方法。factory=newSqlSessionFactoryBuilder().build(in);

3.根据字节输入流创建XMLConfigBuilder即解析器对象parser。

XMLConfigBuilderparser=newXMLConfigBuilder(inputStream,environment,properties);

4.调用parser对象的parse方法,parser.parse(),该结果将返回一个Configuration配置对象,作为build方法的参数。

5.parse()方法中,调用parseConfiguration方法将Configuration元素下的所有配置信息封装进Parser对象的成员Configuration对象之中。

6.其中进行解析xml元素的方式是将通过evalNode方法获取对应名称的节点信息。如:parseConfiguration(parser.evalNode(/configuration));,此时parser.evalNode(/configuration)即为Configuration下的所有信息。

7.parseConfiguration方法相当于将里面每个元素的信息都单独封装到Configuration中。

值得一提的是,我们之后要分析基于代理模式产生dao的代理对象涉及到mappers的封装,其实也在配置文件读取封装的时候就已经完成,也就是在parseConfiguration方法之中:mapperElement(root.evalNode(mappers));。他的作用就是,读取我们主配置文件中mappers的元素内容,也就是我们配置的映射配置文件。

privatevoidmapperElement(XNodeparent)方法将mappers配置下的信息获取,此处获取我们resources包下的

1
查看完整版本: 源码分析从SqlSessionFa