【笔记】拉勾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的动态代理生成,详细内容可以参考之前写的关于代理模式的博文,此处不再赘述。

版权声明:本文为ArvinB原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ArvinB/p/13986556.html