Mybatis初始化的第一步,初始化SqlsessionFactor
Mybatis读取配置的XML文件进行解析器的构建
创建完Xpth对象后接着mybatis会创建Document文档操作对象
以下是mybatis对Document文档操作对象的初始化参数的设置
Mybatis在创建解析器时内部会去读取configuration(mybatis核心配置类)
mybatis初始化SqlsessionFactor的时候会去创建ProxyFactory代理工厂,这也是为什么我们在使用mybatis操作crud时,只用编写interface即可
这个代理工厂实现方式,mybatis写了多种,这里放的是通过cglib技术编写的代理工厂
这里是初始化各种处理程序注册表,也是在configuration中进行完成的
由于mybatis配置类初始化的对象太多了,就不一一进行介绍了,有兴趣的小伙伴可以去configuration类中查看相关的mybatis的配置对象有哪些。
当创建mybaits创建好解析器之后就会去读取我们编写的编写的XML配置文件,当前的/configuration也就是mybaits配置文件的root节点。
在拿到root(configuration)节点后就会调用parseConfiguration方法开始获取我们所写的XML配置文件的属性
在配置完configuration对象后会将configuration对象进行返回
至此Mybatis的SqlSessionFactor初始化完毕!
小伙伴们,接下来我们来看看Mybatis是如何通过动态代理技术来实现对数据库的crud
我们在初始化sqlSessionFactor的时候也就会在configuration对象里实例化很多我们后面所需要的对象就比如当我们需要执行通过sqlSessionFactor创建的sqlsession对象对数据库进行操作的时候
我们所需要的对象有 MapperRegistry
首先会去底层的DefaultSqlsession中的getMapper方法
然后DefaultSqlsessiond对象会去调用configuration中的getMapper对象。
在configuration中获取到对应的Mapper代理对象后,会依次进行返回。
Mapper的执行流程后续会跟新!!!