mybatis源码阅读第一天

源码阅读三要素

  1. 先读文档,在读代码,找到入口,带着目的读(我的目的是了解设计模式、编码风格、总体规划、分包分类等)
  2. 梳理整体结构,画图加深记忆,先不要钻细节
  3. 不要全读,60%左右就够了

mybatis全局配置文件

了解都有哪些属性,属性有什么优先级,属性含义,(官方文档说的注意的点,在读源码时的判断逻辑就会这样编写),这点很重要,摘自官方文档如下:
链接:mybatis官方文档链接
configuration(配置)
properties(属性)
settings(设置)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)
environment(环境变量)
transactionManager(事务管理器)
dataSource(数据源)
databaseIdProvider(数据库厂商标识)
mappers(映射器)

mybatis初始化

代码如下:

		String file = "mybatis-config.xml";
        Reader resources = Resources.getResourceAsReader(file);

//        Environment environment = new Environment.Builder("development").build();
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(resources,"development");

mybatis最核心的类是SqlSession,SqlSession是由SqlSessionFactory创建的,而SqlSessionFactory是由SqlSessionFactoryBuilder创建的,构建SqlSessionFactory使用了构建者模式,构建者模式是根据参数不同会创建不一样的对象,而SqlSessionFactory是工厂模式,会创建统一的对象,也就是一个模子出来的。
创建SqlSessionFactoryBuilder对象的时候,会发现里面使用了XMLConfigBuilder对象,XMLConfigBuilder对象通过XPathParser来解析配置文件,而XMLConfigBuilder对象里面有一个Configuration对象,这是初始化时最核心的一个对象,所有的配置属性以及相关策略都是在这个对象里面,那么接下来看是如何创建这个对象的。

Configuration初始化

直接上图:
初始化逻辑基本在这里了

sqlSessionFactory会话创建总图

sqlSessionFactory

SqlSessionFactory初始化

SqlSessionFactory初始化

遇到的问题

发现初始化时,大量使用了反射,so,先学会反射,能够更好的理解源码了……

下一步是查看解析注册Mapper的源码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值