MyBatis源码分析篇—会话工厂SqlSessionFactory

  • 现在我们可以看下在 new Configuration 的时候做了什么操作;
  • 我们可以从下面的代码截图中看出,其实,他只是做了部分别名的存储;
  • MyBatis源码分析篇---会话工厂SqlSessionFactory

5.3 XMLConfigBuilder#parse

  • 当我们再 SqlSessionFactoryBuilderbuild 方法中获取到了 XMLConfigBuilder 之后,调用了其 parse() 方法;
  • 而我们看到 parse() 方法中调用了 parseConfiguration(XNode root) 这个方法才是真正执行 mybatis 全局配置文件解析的方法。
  • MyBatis源码分析篇---会话工厂SqlSessionFactory
  • parseConfiguration(XNode root) 方法中解析了 <properties> 、配置节点 <settings> 、别名配置节点 <typeAliases>插件扩展 <plugins> 、对象工厂节点 <objectFactory> 、环境配置节点 <environments> 、类型处理器节点 <typeHandlers> 、映射器节点 <mappers> 等;
  • parse() 执行配置文件解析后将配置信息保存至 Configuration 对象中。
  • 其中相对而言最需要我们关注的是: org.apache.ibatis.builder.xml.XMLConfigBuilder#mapperElement 方法,初始化了 MappedStatement 对象,其中保存了映射文件等 SQL 执行所需的必要信息;可参考上一篇博文:初始化解析配置文件
  • 代码运行时序图
MyBatis源码分析篇---会话工厂SqlSessionFactory

至此:已经获取到了会话工厂类实例 SqlSessionFactory ,我们可以从会话工厂中获取session会话,从而操作数据库

结语

​ 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的,我们获取到了会话工厂类,就相当于拿到了制作操作数据库钥匙的机器,而我们现在只需要拿着这个机器去制造钥匙,然后去打开 MyBatis 操作数据库的大门。

原文 

https://juejin.im/post/5ea05449e51d454711412c22

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » MyBatis源码分析篇—会话工厂SqlSessionFactory

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址