Mybatis源码中的架构设计

背景
  • 记录Mybatis的架构设计
过程
  • 架构图
    在这里插入图片描述

  • 说明

  1. 接口层,SqlSession就是我们每次请求创建的sqlSession会话实例。功能就是跟数据库进行交互。执行的动作就是CRUD操作。
  2. 数据库处理层,配置信息(参数信息,sql信息,结果集返回映射信息),解析配置信息,类型转换(java type到jdbc type; jdbc type到java type)
  3. 基础层。提供基础设施,比如读取文件资源的io, 构建xml的builder,解析xml的xpath、xnode,事务管理,缓存管理,连接池等。
  4. 总的来说,mybatis架构不复杂、源码其实也不多。而且用到java核心基础知识就是:反射和动态代理。
  5. 层层相互依赖,共同合作实现ORM框架工具。层与层之间是依赖关系,但是架构上是完全解耦独立的,并且保持扩展功能(plugin)。
小结
  • 实现一个方法。方法中用到的常量、变量、枚举、设计模式、类、接口、递归等等一系列,都可以把这些小知识理解成架构的一部分
  • 然后,上升到实现一个功能需要哪些架构中的组件。这个功能由哪些方法一起组合成的。
  • 然后,上升到实现一个应用需要哪些模块组件。模块功能和模块关系如何划分。如何解耦。
  • 最后,上升到实现一个分布式系统需要哪些架构中的组件(消息中心、缓存中心、任务调度中心、配置中心、服务注册与发现中心、分布式锁、分布式事务、全局唯一ID等等基础组件),这些组件是怎样进行架构的?
  • 以前,我们只是知道道理,哪怕我们心里知道道理,在实践过程中,依然还是会犯错,但是,犯错一次两次,然后反思和思考后,就会在脑海里清晰地规划出,做一件事的整个详细步骤来,每一步都很清晰,而不是模糊的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值