个人简介
我是一名工作了6年的 Java 工程师,日常主要工作就是业务功能开发,但是业余时间喜欢研究一些开源框架和流行的技术。我本人是经典 ORM 框架 MyBatis 的 Contributor,同时也是微服务框架 Nacos 的核心 Contributor 和 gorm 的Contributor。
写作初衷
在我研读 MyBatis 源码的过程中,被其简洁清晰的功能结构、优雅的代码实现以及诸多经典设计模式的灵活运用所深深折服,我自己也从中受益颇多。 因此,我决定开启《MyBatis 设计思想》这个专栏,力求通过简洁而又不失系统化的方式,对 MyBatis 框架进行深度地梳理与剖析,尝试解构出它背后那些经典的设计思想,提炼出其中的精髓,并加以在日常工作中借鉴。专栏的写作初衷本是一个自我学习的方式,但是如果阅读的人能从中收获哪怕一点提升,那也是功德无量的事。
主要内容
本专栏力求聚焦重点,并不会大而全地介绍 MyBatis 的全部实现细节,而是选择其中个人认为最见编程功力的部分加以重点分析。这些内容通常是 MyBatis 的设计精髓,也是值得反复学习并尝试在实际工作中应用的最佳实践。
本专栏主要包括以下四个模块的内容:
- 开篇
开篇会站在全局视角,介绍下 MyBatis 的主要功能和使用方式,并对其源码结构和逻辑架构做一个概览,为后面的学习打好基础。
- 基础支撑篇
MyBatis 之所以能成为一款流行的 ORM 框架,很大程度上得益于其底层众多功能模块的支持,如日志、缓存、数据源、类型转换等等。这些模块实现简洁且优雅,很多甚至可以直接拿出来用在其它项目上。本篇会对这些功能模块一一进行详细地解析。
- 核心功能篇
本篇首先会整体梳理下 MyBatis 中 SQL 解析 -> 参数绑定 -> 结果集映射 -> Executor 执行器
这一典型执行流程,接下来对其中每一个步骤进行详细地展开,最终串联起 MyBatis 的核心功能实现。
- 整合与扩展篇
在最后这篇里会讨论 MyBatis 与常用第三方框架如 Spring 的整合原理,接下来演示下 MyBatis-Plus 这一利器的使用方式,最后对一些扩展功能如动态数据源、分库分表等做一些发散性思考。
这里我附上一张主要内容的思维导图,方便随时回来查阅:
写在最后
本专栏开篇于2023年年中,正值后疫情时代经济复苏不及预期、行业增速继续放缓、裁员失业率居高不下的宏观环境下,不确定性与焦虑感在整个社会中蔓延。但是我想说的是,越是在不确定的时代,越是要转而追求自身的确定性,摒弃对于时代红利 β 的依赖,专注于提升个人的 α。经济的兴衰、行业的变革背后都有其周期性的规律,拉长时间维度来看,我们当前所经历的一切也许并没有那么特殊。让我们一起把心态放平、视野放宽,在周期下行时持续蓄能,等待上行的机会再一飞冲天!最后附上我很喜欢的一句话共勉:风物长宜放眼量。