图片


这本书上次看到一半,由于刚刚刷了一些 MyBatis 的面试题,这次重新看还挺快,花了 3 个晚上睡前时间加一些午睡前的时间,估计有七八个小时。


笔者找某些方面的书有一个习惯,豆瓣搜一下关键词,看下评分与评论数,超过 7.5 分 + 评论过百,基本这本是值得花时间扫一眼的。这本评论人数 70,但分 8.6 还挺高。


先说下主要内容:

  • 介绍了 MyBatis 的整体功能,与 Hibernate 比优势体现在哪

  • 使用示例

  • 整体架构,基础支持层、核心处理层、接口层的作用

  • 详细说了基础支持层的技术点、功能点的实现。比如 XML 的解析、反射工具类的封装、类型转换的处理、日志模块的适配、资源加载、数据源的实现、事务管理、缓存的实现

  • 核心处理层的功能与实现。初始化中对 XML 的解析、动态 SQL 解析、结果集的处理、缓存的 key 的生成策略、数据库执行的各种 Statement 处理接口实现、各种 SQL 执行器、开放的给客户端的使用接口

  • 插件的实现

  • 如何与 Spring 集成

  • MyBatis-Generator 自动生成 Mapper 接口、PO、Mapper xml

...


一些感触:

由于笔者这一段时间也坚持输出博客,看到这本书最大的一点感触就是,源码分析的内容是真难写。一来需要你对整体架构要有深刻理解;二来要理解代码逐行标出作用。还有一个比较尴尬的点就是,需要贴出大量篇幅的源码,显得非常枯燥。写好源码分析的书,需要足够的水平。

这本书讲的很细致,说核心知识之前,会讲一些背景知识作为铺垫。比如讲 XPath 解析 xml 时,就会讲解一下 XML 的 3 种解析方式,用 XPath 有哪些优缺点,然后才到具体是如何解析,这样就会走心。动态代理也是,提前讲了 JDK 动态代理的标准模板代码与实现原理,才到 MyBatis 中具体哪些地方被动态代理了,如日志模块、Mapper、懒加载等。写框架,JDK 动态代理、cglib、反射这些技术一般都是绕不开的,代码和功能的扩展性也要考虑到。MyBatis 的源码中包含了大量的设计原则与设计模式。比如六条最知名的设计原则:单一职责、里氏替换、依赖导致、接口隔离、迪米特、开闭;使用了工厂模式、适配器模式、策略模式、职责链模式、单例模式、访问者模式等。了解这些设计原则 + 设计模式,熟悉框架功能,再深入到实现细节,源码基本不难读懂。书中画了大量的代码执行的流程图、各模块中的类图和一些架构图。书如其名,想深入了解 MyBatis 技术实现细节,可以看看,作为进阶。



更多相关文章

  1. 桥接模式在开源代码中的应用
  2. 模板方法模式在开源代码中应用
  3. ConcurrentHashMap基于JDK1.8源码剖析
  4. 组合模式在开源代码中的应用
  5. Thread源码剖析
  6. 享元模式在开源代码中的应用
  7. TreeMap就这么简单【源码剖析】
  8. LinkedHashMap就这么简单【源码剖析】
  9. 外观模式在开源代码中的应用

随机推荐

  1. Android获取当前时间
  2. Android ScrollView 去掉 scrollbar 和
  3. 日期和时间(DatePicker、TimePicker)
  4. Android中Json的解析和构建
  5. Android 10 获取相册图片失败
  6. 【android】通话录音
  7. Android文件列表RecyclerView中点击视频
  8. Android API等级、Android版本、发布日期
  9. Android 9.0 P 状态栏下移的实现
  10. Android 应用Crash 后自动重启