根据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包下的