一、Configuration的结构详解
Configuration :MyBaits的全局配置文件对象
|--DataSource:连接数据库的数据源对象
|--MappedStatement:封装映射文件中select、insert等标签对象
|--SqlSource:封装select标签下的sql语句对象
图解:
总结:从上图可以看出Configuartion对象的加载流程,其实分为三大部分:全局配置文件加载、映射文件加载、Sql语句加载,下面就是源码阅读的每个部分的详细创建流程。
二、Configuration源码创建流程
1、全局配置文件的加载流程
SqlSessionFactoryBuilder#builder 用于构建SqlSessionFactory对象
|—XMLConfigBuilder#构造方法:用来解析全局配置文件的解析器
|—XPathParser#构造方法:使用XPath语法解析XML的解析器
|—XPathParser#createDocument:将全局配置文件封装为Document对象
|—XMLConfigBuilder#parse:正式开始解析
|—XPathParser#evalNode:根据XPath语法获取指定节点
|—XMLConfigBuilder#parseConfiguration:从全局配置文件的根结点(configuration)开始解析,并封装到Configuration中。
|--XMLConfigBuilder#