全部商品分类

您现在的位置: 全部商品分类 > 电子电脑 > 计算机技术 > 程序与语言

通用源码阅读指导书(MyBatis源码详解)

  • 定价: ¥100
  • ISBN:9787121391460
  • 开 本:16开 平装
  •  
  • 折扣:
  • 出版社:电子工业
  • 页数:386页
  • 作者:编者:易哥|责编:...
  • 立即节省:
  • 2020-08-01 第1版
  • 2020-08-01 第1次印刷
我要买:
点击放图片

导语

  

内容提要

  

    本书是一本以MyBatis源码为材料,详细介绍源码阅读相关方法和技巧的指导书籍。
    本书以MyBatis源码中的包为单位,详细和透彻地介绍每个类的源码,包括其背景知识、组织方式、逻辑结构和实现细节。在本书的讲解中,不漏过每一个类,不跳过每一个难点,做到深浅一致。在阅读MyBatis源码的过程中,本书使用了运行初探、模块归类、合理猜测、类比阅读、网格阅读等许多源码阅读方法。最后,本书对这些源码阅读方法进行了总结整理。
    本书适合想要开展源码阅读、想要借鉴优秀设计和想要深入了解MyBatis原理的开发者阅读使用。本书能让读者在详细了解MyBatis源码的基础上提升自己的源码阅读能力、系统架构能力及软件开发能力。

作者简介

    易哥,毕业于浙江大学、山东大学。高级软件系统架构师、网络工程师、数据库工程师、软件测试工程师、注册电气工程师。
    在校成绩优异。曾获得国家奖学金两次,一等奖学金四次。科技创新大赛一等奖三次,以及五四青年科学奖等。主要科研方向为机器学习、分布式算法、容错算法在无线传感网络中的应用,相关论文获得lEEE通信协会最佳论文奖。
    曾担任网站技术部门负责人,具有丰富的互联网开发经验。先后设计和实现了众多系统和平台,也是活跃的开源开发者。
    现专注软件系统架构设计与后端开发,著有《通用源码阅读指导书》《高性能架构之道》等书。

目录

第1篇  背景介绍
  第1章  源码阅读
    1.1  源码阅读的意义
    1.2  源码阅读的方法
    1.3  开源软件
    1.4  MyBatis源码
    1.5  本书结构
      1.5.1  背景知识
      1.5.2  文件的指代
      1.5.3  方法的指代
  第2章  MyBatis概述
    2.1  背景介绍
      2.1.1  传统数据库连接
      2.1.2  ORM框架
      2.1.3  MyBatis的特点
    2.2  快速上手
      2.2.1  MyBatis包的引入
      2.2.2  MyBatis的简单配置
      2.2.3  基于MyBatis的数据库操作
    2.3  MyBatis的核心功能分析
  第3章  MyBatis运行初探
    3.1  初始化阶段追踪
      3.1.1  静态代码块的执行
      3.1.2  获取InputStream
      3.1.3  配置信息读取
      3.1.4  总结
    3.2  数据读写阶段追踪
      3.2.1  获得SqlSession
      3.2.2  映射接口文件与映射文件的绑定
      3.2.3  映射接口的代理
      3.2.4  SQL语句的查找
      3.2.5  查询结果缓存
      3.2.6  数据库查询
      3.2.7  处理结果集
      3.2.8  总结
  第4章  MyBatis源码结构概述
    4.1  包结构
    4.2  分组结构
第2篇  基础功能包源码阅读
  第5章  exceptions包
    5.1  背景知识
      5.1.1  Java的异常
      5.1.2  序列化与反序列化
    5.2  Exception类
    5.3  ExceptionFactory类
  第6章  reflection包
    6.1  背景知识
      6.1.1  装饰器模式
      6.1.2  反射
      6.1.3  Type接口及其子类
    6.2  对象工厂子包
    6.3  执行器子包
    6.4  属性子包
    6.5  对象包装器子包
    6.6  反射核心类
    6.7  反射包装类
    6.8  异常拆包工具
    6.9  参数名解析器
    6.10  泛型解析器
  第7章  annotations包与lang包
    7.1  Java注解详解
    7.2  Param注解分析
  第8章  type包
    8.1  模板模式
    8.2  类型处理器
      8.2.1  类型处理器的基类与实现类
      8.2.2  TypeReference类
    8.3  类型注册表
  第9章  io包
    9.1  背景知识
      9.1.1  单例模式
      9.1.2  代理模式
      9.1.3  静态代理
      9.1.4  VFS
    9.2  VFS实现类
      9.2.1  DefaultVFS类
      9.2.2  JBoss6VFS类
    9.3  类文件的加载
    9.4  ResolverUtil类
  第10章  logging包
    10.1  背景知识
      10.1.1  适配器模式
      10.1.2  日志框架与日志级别
      10.1.3  基于反射的动态代理
    10.2  Log接口
    10.3  Log接口的实现类
    10.4  LogFactory
    10.5  JDBC日志打印
  第11章  parsing包
    11.1  背景知识
      11.1.1  XML文件
      11.1.2  XPath
    11.2  XML解析
    11.3  文档解析中的变量替换
第3篇  配置解析包源码阅读
  第12章  配置解析概述
  第13章  binding包
    13.1  数据库操作的接入
      13.1.1  数据库操作的方法化
      13.1.2  数据库操作方法的接入
    13.2  抽象方法与数据库操作节点的关联
    13.3  数据库操作接入总结
      13.3.1  初始化阶段
      13.3.2  数据读写阶段
    13.4  MyBatis与Spring、Spring Boot的整合
  第14章  builder包
    14.1  建造者模式
    14.2  建造者基类与工具类
    14.3  SqlSourceBuilder类与StaticSqlSource类
    14.4  CacheRefResolver类和ResultMapResolver类
      14.4.1  CacheRefResolver类
      14.4.2  ResultMapResolver类
    14.5  ParameterExpression类
    14.6  XML文件解析
      14.6.1  XML文件的声明解析
      14.6.2  配置文件解析
      14.6.3  数据库操作语句解析
      14.6.4  Statement解析
      14.6.5  引用解析
    14.7  注解映射的解析
      14.7.1  注解映射的使用
      14.7.2  注解映射解析的触发
      14.7.3  直接注解映射的解析
      14.7.4  间接注解映射的解析
  第15章  mapping包
    15.1  SQL语句处理功能
      15.1.1  MappedStatement类
      15.1.2  SqlSource类
      15.1.3  BoundSql
    15.2  输出结果处理功能
      15.2.1  ResultMap类
      15.2.2  ResultMapping类
      15.2.3  Discriminator
    15.3  输入参数处理功能
    15.4  多数据库种类处理功能
    15.5  其他功能
  第16章  scripting包
    16.1  OGNL
    16.2  语言驱动接口及语言驱动注册表
    16.3  SQL节点树的组建
    16.4  SQL节点树的解析
      16.4.1  OGNL辅助类
      16.4.2  表达式求值器
      16.4.3  动态上下文
      16.4.4  SQL节点及其解析
    16.5  再论SqlSource
      16.5.1  SqlSource的生成
      16.5.2  DynamicSqlSource的转化
      16.5.3  RawSqlSource的转化
      16.5.4  SqlSource接口的实现类总结
  第17章  datasource包
    17.1  背景知识
      17.1.1  java.sql包和javax.sql包
      17.1.2  DriverManager
      17.1.3  DataSource
      17.1.4  Connection
      17.1.5  Statement
    17.2  数据源工厂接口
    17.3  JNDI数据源工厂
    17.4  非池化数据源及工厂
      17.4.1  非池化数据源工厂
      17.4.2  非池化数据源
    17.5  池化数据源
      17.5.1  池化数据源类的属性
      17.5.2  池化连接的给出与收回
      17.5.3  池化连接
    17.6  论数据源工厂
第4篇  核心操作包源码阅读
  第18章  jdbc包
    18.1  AbstractSQL类与SQL类
      18.1.1  SafeAppendable内部类
      18.1.2  SQLStatement内部类
      18.1.3  AbstractSQL类
      18.1.4  SQL类
    18.2  SqlRunner类
    18.3  ScriptRunner类
    18.4  jdbc包的独立性
  第19章  cache包
    19.1  背景知识
      19.1.1  Java对象的引用级别
      19.1.2  ReferenceQueue类
    19.2  cache包结构与Cache接口
    19.3  缓存键
      19.3.1  缓存键的原理
      19.3.2  缓存键的生成
    19.4  缓存的实现类
    19.5  缓存装饰器
      19.5.1  同步装饰器
      19.5.2  日志装饰器
      19.5.3  清理装饰器
      19.5.4  阻塞装饰器
      19.5.5  定时清理装饰器
      19.5.6  序列化装饰器
    19.6  缓存的组建
    19.7  事务缓存
    19.8  MyBatis缓存机制
      19.8.1  一级缓存
      19.8.2  二级缓存
      19.8.3  两级缓存机制
  第20章  transaction包
    20.1  事务概述
    20.2  事务接口及工厂
    20.3  JDBC事务
    20.4  容器事务
  第21章  cursor包
    21.1  Iterable接口与Iterator接口
    21.2  MyBatis中游标的使用
    21.3  游标接口
    21.4  默认游标
      21.4.1  CursorStatus内部类
      21.4.2  ObjectWrapperResultHandler内部类
      21.4.3  CursorIterator内部类
      21.4.4  DefaultCursor外部类
  第22章  executor包
    22.1  背景知识
      22.1.1  基于cglib的动态代理
      22.1.2  javassist框架的使用
      22.1.3  序列化与反序列化中的方法
      22.1.4  ThreadLocal
      22.1.5  存储过程
      22.1.6  Statement及其子接口
    22.2  主键自增功能
      22.2.1  主键自增的配置与生效
      22.2.2  Jdbc3KeyGenerator类
      22.2.3  SelectKeyGenerator类
    22.3  懒加载功能
      22.3.1  懒加载功能的使用
      22.3.2  懒加载功能的实现
      22.3.3  懒加载功能对序列化和反序列化的支持
    22.4  语句处理功能
      22.4.1  MyBatis对多语句类型的支持
      22.4.2  MyBatis的语句处理功能
    22.5  参数处理功能
    22.6  结果处理功能
    22.7  结果集处理功能
      22.7.1  MyBatis中多结果集的处理
      22.7.2  结果集封装类
      22.7.3  结果集处理器
    22.8  执行器
      22.8.1  执行器接口
      22.8.2  执行器基类与实现类
    22.9  错误上下文
  第23章  session包
    23.1  SqlSession及其相关类
      23.1.1  SqlSession的生成链
      23.1.2  DefaultSqlSession类
      23.1.3  SqlSessionManager类
    23.2  Configuration类
    23.3  其他类
  第24章  plugin包
    24.1  责任链模式
    24.2  MyBatis插件开发
    24.3  MyBatis拦截器平台
    24.4  MyBatis拦截器链与拦截点
第5篇  总结与展望
  第25章  源码阅读总结
    25.1  前期准备
      25.1.1  工具准备
      25.1.2  项目选择
      25.1.3  项目使用
    25.2  项目初探
    25.3  源码阅读
      25.3.1  模块分析
      25.3.2  模块归类
      25.3.3  自底向上
      25.3.4  合理猜测
      25.3.5  类比阅读
      25.3.6  善于汇总
      25.3.7  网格阅读
  第26章  优秀开源项目推荐
    26.1  Guava
    26.2  Tomcat
    26.3  Redis
    26.4  Dubbo
    26.5  React