1.Mybatis的整体架构
接口层
接口层是提供给开发人员的一套API,主要是使用SQLSession接口和Mapper接口通知调用那个sql还有关联参数
二.sqlsession源码分析
SqlSessionFactory是一个顶级接口,他主要包括的是创建SqlSession以及图中显示的Configuration对象.
Configuration这个对象主要是Mybatis中的配置文件,通过加载配置文件完成一些对Mybatis中的一些设置
由图可知,这个顶级接口总共两个实现类
那我们先看看SqlSessionManager
在这个里边主要就有一个比较简单的问题,标记在图片中了
但是在实际开发中,一般情况下Mybatis都是要配合Spring一起使用的,所以,SqlSession对象一般情况是由Spring进行管理的,所以这个类就不做深入研究了,
另一个实现类主要就是 DefaultSqlSessionFactory
这个里边主要是通过configuration进行创建对象.
这个configuration主要是哪里来的,我这边写一个简单的测试类进行debug一下,看一下他是如何过来了
在创建sqlSessionFactory对象中,他主要是通过他的自类创建出来对象
在断点进来以后,我们看到这个方法的XMLConfigBuilder对象,XMLConfigBuilder这个对象主要是解析出来在启动之前加载的配置文件,在return中他主要的就是讲我们的配置返回成configuration对象,然后在build方法中我们看到通过这个房子创建出来了这个sqlsessionfactory对象
至此我们的sqlSessionFactory对象就创建完成了