美文网首页
Spring-Mybatis SqlSessionFactor

Spring-Mybatis SqlSessionFactor

作者: 寒叶xly | 来源:发表于2018-08-25 11:34 被阅读0次

    理解一个类,首先需要知道类的作用。SqlSessionFactoryBean 类的作用就是通过加载器读取mybatis.xml 和 myabtis-spring.xml生成 SqlSessionFactory。先看一下mybatis配置文件和mybatis-spring整合配置文件。

    mybatis 属性配置:

    mybatis-spring 整合:

    SqlSessionFactoryBean 类继承了 InitializingBean , InitializingBean 的作用是初始化容器后,会执行 afterPropertiesSet() 方法。

    从上图中的红框中可以看出,启动时会执行 buildSqlSessionFactory 方法,作用就是创建 SqlSessionFactory。

    在介绍 buildSqlSessionFactory  方法之前,需要了解一下 org.apache.ibatis.session.Configuration 类。

    Configuration 类的作用是用来存储 mybatis.xml 配置的各种属性,创建 SqlSessionFactory 的过程就是不断的读取配置文件中的属性,然后 set 进入 Configuration 中。

    初始化 Configuration 对象之后,需要对传入 SqlSessionFactoryBean 不为空的对象进行赋值。例:

    至此。SqlSessionFactoryBean  传入属性赋值已经讲述完成。下面讲述的是对于 mybatis.xml 和 mybatis-spring.xml 中 mapperLocations 的解析。

    XMLConfigBuilder:解析mybatis.xml配置文件,使用读取配置文件中各个节点的方式,将属性值set进入Configuration对象。

    mybatis.xml解析过程:

    从源码可以看出,最开始截取的是根节点 /configuration。然后对根节点中的各个节点进行切割。但是切割的方法都是一样的:root.evalNode()。

    切割完成之后,就是将各个元素保存在Configuration中。下面截图是针对于<settings>元素的保存过程

    接下来就是最后一步了,对于 mapper.xml 的解析。使用的 XMLMapperBuilder。

    相信大家对于 mapper.xml 配置格式已经很清晰,这里就不过多介绍,上源码。

    在 configurationElement 是仍然是对于各个节点的拆分,然后针对于各个属性进行一个Configure。

    最后将项目中所需要的预加载属性存放到  SqlSource 对象中,进行预加载。

    S

    由于本文中需要有一些 mybatis 基础。如果发现看起来较吃力,可以先看一下官方的文档,里面有对于各个属性,配置和简单入门使用的讲解。官网地址:http://www.mybatis.org/mybatis-3/zh/index.html

    相关文章

      网友评论

          本文标题:Spring-Mybatis SqlSessionFactor

          本文链接:https://www.haomeiwen.com/subject/mxiwiftx.html