我们都知道,在Mybatis中,对数据库的增删改查,实际上是由SqlSession来操作的,而SqlSession又是从SqlSessionFactory中得到的,那么问题来了,SqlSessonFactory是如何获得的呢?今天我们一起来解读一下Mybatis是如何加载配置文件,从而获取SqlSessionFactory的。
首先,从Resources.getResourceAsReader(path)传入我们mybatis全局配置文件得到一个输入流InputStream,这里用Reader来接收。然后new一个SqlSessionFactoryBuilder对象,这是干嘛呢,这个对象里有一个build(Reader)方法,可以将我们传入的Reader,经过一系列的解析过程,返回给我们一个SqlSessionFactory实例,这样我们就得到了想要的SqlSessionFactory了,估计要是这么就结束了,读者会不会打死我呀(哈哈)。所以我们就详细说一下中间的解析过程。
进入到SqlSessionFactoryBuilder.build(Reader)方法中,它会再次调用build(Reader,environment(默认是null),