前言
越来越多的企业已经将MyBatis使用到了正式的生产环境,我认为流行的原因就在于绝大部分项目都是面向表结构编程的,把Java对象仅当成数据容器,查询和模型变更都设计在一张表上,所谓业务逻辑就是一堆增删改查的sql集合,因此Mybatis用起来非常方便。
为什么要学MyBatis?
除了我上面说的目前MyBatis在国内非常流行外,还有以下几点:
①学好MyBatis能很好地帮助我们解决数据层开发的问题;
②MyBatis源码中有很多设计模式和并发编程的技巧,学好源码对提升编码能力有很大的帮助;
③最后,Mybatis源码也是大厂面试的经常问的点。
基于上述情况,本次将给大家分享阿里p8私藏MyBatis笔记,帮助大家由浅入深地学习MyBatis相关知识,纵享源码细节,让开发者不仅知其然,更知其所以然。
注:由于内容较多,本次将展示部分,如果看得不过瘾想更加深入地了解本笔记彻底掌握MyBatis底层原理,可以帮忙转发一下,关注后添加助理vx:yunduoa2019或扫描下图二维码,跟随助理指引自行获取
本文分为两部分,但是我想反套路来一波,首先给大家展示一下源码,再展示MyBatis整体学习内容,不多bb,直接上了。
A:精进MyBatis源码分析 - 整体架构
①整体架构
- 项目结构
- 整体架构
- 基础支持层
- 核心处理层
- 接口层
B:精进MyBatis源码分析 - 基础支持层
①基础支持层
- 解析器模块
- 反射模块
- 异常模块
- 数据源模块
- 事务模块
- 缓存模块
- 类型模块
- IO模块
- 日志模块
- 注解模块
- Binding模块
C:精进MyBatis源码分析 - MyBatis初始化(一)之加载 mybatis-config.xml
①MyBatis的初始化
②初始化(一)之加载mybatis-config.xml
- SqlSessionFactoryBuilder
- XMLConfigBuilder
- Configuration
D:精进MyBatis源码分析 - MyBatis初始化(二)之加载 Mapper 接口与 XML 映射文件
①MyBatis的初始化
②初始化(二)之加载Ma