Mybatis 源码解析之源码概述

源码架构分析 :

源码结构图:

  

MyBatisCursorItemReader源码 mybatis源码深度解析_源码下载

  基础支撑层:技术组件专注于底层技术实现,通用性较强无业务含义;
  核心处理层:业务组件专注 MyBatis 的业务流程实现,依赖于基础支撑层;
  接口层:MyBatis 对外提供的访问接口,面向 SqlSession 编程;

建议和脑图一起看,了解每个包存在的意义)

         

MyBatisCursorItemReader源码 mybatis源码深度解析_github_02

  

mybatis源码分析的意义:

我们可以清晰的看到,mybatis的源码结构十分清晰,对外以暴露接口的形式,这里运用了一个设计模式 - 外观模式 ,此设计模式的优点十分明显:

  使复杂子系统的接口变的简单可用,减少了客户端对子系统的依赖,达到了解耦的效果;遵循了 OO 原则中的迪米特法则,对内封装具体细节,对外只暴露必要的接口。

mybatis源码思考:

    为什么mybatis需要将整个结构分为3层?为什么要这么分?依据是什么?这样分的好处是什么?

  1. 代码和系统的可维护性更高。系统分层之后,每个层次都有自己的定位,每个层次内部的组件都有自己的分工,系统就会变得很清晰,维护起来非常明确;
  2. 方便开发团队分工和开发效率的提升,因为庞大的框架一个人的力量有限的,合理的分层分模块,可以使团队的协作更加默契,也是我们在做代码结构设计时需要注意的;
  3. 提高系统的伸缩性和性能。在系统分层了之后,我们只要把层次之间的调用接口明确了,那我们就可以从逻辑上的分层变成物理上的分层。当并发或者吞吐量上来了之后,我们可以采用集群部署的方式,将各个层分属在不同的物理机上,这样就会使我们的项目可以更好的横向拓展。

方法总比困难多。 思想重于实现。