(一) Mybatis 源码解析之源码概述
Mybatis 源码解析之源码概述
源码下载 : https://github.com/MyBatis/MyBatis-3
源码架构分析 :
源码结构图:
基础支撑层:技术组件专注于底层技术实现,通用性较强无业务含义;
核心处理层:业务组件专注 MyBatis 的业务流程实现,依赖于基础支撑层;
接口层:MyBatis 对外提供的访问接口,面向 SqlSession 编程;
源码脑图结构: https://www.processon.com/mindmap/5f317132f346fb718468fb3c
源码结构图 :(建议和脑图一起看,了解每个包存在的意义)
mybatis源码分析的意义:
我们可以清晰的看到,mybatis的源码结构十分清晰,对外以暴露接口的形式,这里运用了一个设计模式 - 外观模式 ,此设计模式的优点十分明显:
使复杂子系统的接口变的简单可用,减少了客户端对子系统的依赖,达到了解耦的效果;遵循了 OO 原则中的迪米特法则,对内封装具体细节,对外只暴露必要的接口。
mybatis源码思考:
为什么mybatis需要将整个结构分为3层?为什么要这么分?依据是什么?这样分的好处是什么?
- 代码和系统的可维护性更高。系统分层之后,每个层次都有自己的定位,每个层次内部的组件都有自己的分工,系统就会变得很清晰,维护起来非常明确;
- 方便开发团队分工和开发效率的提升,因为庞大的框架一个人的力量有限的,合理的分层分模块,可以使团队的协作更加默契,也是我们在做代码结构设计时需要注意的;
- 提高系统的伸缩性和性能。在系统分层了之后,我们只要把层次之间的调用接口明确了,那我们就可以从逻辑上的分层变成物理上的分层。当并发或者吞吐量上来了之后,我们可以采用集群部署的方式,将各个层分属在不同的物理机上,这样就会使我们的项目可以更好的横向拓展。
方法总比困难多。
思想重于实现。