mybatis的配置加载流程

第一步获取配置

1.1 InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");首先通过资源加载获取classpath下的配置文件;

第二步:将配置文件映射到Configuration对象中创建SqlSessionFactroy

2.1将配置文件加载进入XMLConfigBuilder的XPathParser解析器中

2.1 .1通过XMLConfigBuilder解析配置

2.1.2XMLConfigBuilder的build方法内部调用XPathParser解析器的createDocument方法该方初始化DocumentBuilder解析得到Document

使用XPathParser从文档的/configuration标签开始解析,

2.2 解析/configuration一级标签下的内容

2.2.1解析properties标签、settings标签、解析typeAliases标签、解析plugins标签、解析objectFactory标签、解析objectWrapperFactory标签、解析reflectorFactory、解析environments、databaseIdProvider解析、typeHandlers解析、mappers解析

其中typeHandlers可以自定义别名解析,plugins可以自定义分页插件

至此所有标签已经被解析,sqlSessionFactroy被创建。

2.2.3 补充说明关键解析mappers解析

2.2.3.1判断package还是resource标签

2.2.3.2如果是resource标签通过XMLMapperBuilder构建读取mapper文件,首先创建xpath解析器,解析器创建document,将内容加载进入xpathParser

XMLLanguageDriver#createSqlSource获取解析的sql

XMLScriptBuilder初始化sql解析所需要的参数如动态sql标签等

parseDynamicTags解析sql判断sql是否是动态sql如果是动态sql创建动态sql节点如果是静态sql创建静态sql节点,执行完成后对如果是动态sql进行标记如果是动态sql将创建动态SqlSource否则创建静态sqlSource

你可能感兴趣的:(mybatis的配置加载流程)