1.客户端调用SqlSesisonFactoryBuilder.build,传入对象为SqlMapConfig文件流
2.根据sqlMapCconfig文件流--> 创建XMLConfigBuilder对象
3.直接创建XMLMapperEntityResolver,该对象是SqlMapConfig文件的DTD本地实例 作用:将远程DTD文件转化为本地文件
4.根据sqlMapConfig文件流,确定校验,XMLMapperEntityResolver实例对象 -->创建XPathParser . XPathParser作用:根据Xpath表达式获取基本的DOM节点Node信息的操作
6.根据传入的SqlMapConfig配置文件流--> 创建Document实例
7.返回XMLConfigBuilder实例.实例变量中有一个属性parsed,parserd=false. 代表并没有进行解析
8.调用XMLConfigBuilder实例实例的parse方法
9.在parse方法中,调用该实例属性的XPathParser,让它去处理SqlMapConfig配置文件的的<configuration>节点对应的Node对象,然后依次解析此Node节点的子Node:properties, settings, typeAliases,typeHandlers,objectFactory, objectWrapperFactory, plugins, environments,databaseIdProvider, mappers
10.将XML配置文件内的信息解析成Java对象Configuration
11.将上一步创建的Cofiguration对象作为参数,来创建DefaultSqlSessionFactory对象
12.返回一个DefaultSqlSessionFactory对象