【mybatis】原生mybatis解析配置文件的原理

最近闲来无事研究mybaits的执行流程和源码,这里来记录下一点点心得...

原生mybaits(没有和任何框架集成的)的全局配置文件解析的流程如下:

首先容器启动后mybatis底层创建sqlsessionfactorybuilder对象,该对象调用builder方法传入全局配置文件的输入流【mybatis】原生mybatis解析配置文件的原理_第1张图片

方法内使用XmlConfigBuilder对象接收输入流作为配置文件的解析器,并调用sqlsessionfactorybuilder的builder方法传入解析器,解析器调用parse方法在内部进行标签解析

【mybatis】原生mybatis解析配置文件的原理_第2张图片

在该方法内解析器解析全局配置文件的configuration标签(根标签),作为参数传递到parseConfiguration方法中

【mybatis】原生mybatis解析配置文件的原理_第3张图片

在该方法内,根据根标签configuration来解析配置文件中的子标签,即使是没有定义的标签,在这里也会解析出来设置为默认值

【mybatis】原生mybatis解析配置文件的原理_第4张图片

这个地方解析的是在全局配置文件中注册的mapper.xml文件,里面走了非常多的方法,有兴趣的可以深入了解

【mybatis】原生mybatis解析配置文件的原理_第5张图片

所有的属性包括全局配置文件的标签内容和xml中每个增删改查的标签内容都被封装在configuration对象中,也就是说整个配置文件的信息都集中在configuration类中.

【mybatis】原生mybatis解析配置文件的原理_第6张图片

最后传入configuration对象返回一个类型为defaultSqlSessionFactory对象....

【mybatis】原生mybatis解析配置文件的原理_第7张图片

 

这就是mybatis关于底层的加载配置文件的源码流程....å æ²¹

你可能感兴趣的:(【mybatis】原生mybatis解析配置文件的原理)