【笔记】拉勾Java工程师高薪训练营-第一阶段 开源框架源码解析-模块一 持久层框架涉及实现及MyBatis源码分析-Mybatis源码剖析
【笔记】拉勾Java工程师高薪训练营-第一阶段 开源框架源码解析-模块一 持久层框架涉及实现及MyBatis源码分析-Mybatis源码剖析
以下笔记是我看完视频之后总结整理的,部分较为基础的知识点也做了补充,如有问题欢迎沟通。由于本任务大多为代码讲解,相关内容在讲义里面都有,所以这里基本上没有什么内容。网上有更多更好的材料可以参考学习,如果需要讲义,可以留下邮箱。
任务三:Mybatis源码剖析
3.1 Mybatis架构原理-架构设计_构件关系_总体流
架构设计
主要构件与相互的关系
总体流程
1 加载配置并初始化,配置主要来源于配置文件(conf.xml和xxxMapper.xml)和Java的注解
2 接收调用请求
3 处理操作请求
4 返回处理结果
3.2 Mybatis初始化过程
见PDF讲义,此处不再赘述。
3.3 Mybatis执行sql流程
见PDF讲义,此处不再赘述。
3.4 Mybatis执行器Executor源码剖析
见PDF讲义,此处不再赘述。
3.5 Mybatis StatementHandler源码剖析
见PDF讲义,此处不再赘述。
3.6 Mybatis的mapper代理方式getMapper()源码剖析
见PDF讲义,此处不再赘述。
3.7 Mybatis的invoke方法源码剖析
见PDF讲义,此处不再赘述。
3.8 设计模式——构建者设计模式
构建者模式属于创建类模式,因此简单说就是用来创建一个类的时候会使用到的,定义是将一个复杂对象的构建,和它的表示分离,似的同样的构建过程可以创建不同的表示。
构建者模式经常会和工厂模式进行对比,工厂模式可以认为是生产出一个完整的对象,而构建者模式可以认为是一步一步,可选择的通过构建一个个“基础”内容,最终完成对象的构建,而这个对象不一定是完整的。
3.9 设计模式——工厂模式
Mybatis里面的SqlSessionFactory使用的是简单工厂模式,就是单纯的根据入参,返回对应的对象,建议寻找其他材料辅助学习。
3.10 设计模式——代理模式
这里用到的是JDK的动态代理生成,详细内容可以参考之前写的关于代理模式的博文,此处不再赘述。