• 通用源码阅读指导书/MyBatis源码详解
21年品牌 40万+商家 超1.5亿件商品

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

91283779839681112124

18.9 1.9折 100 九五品

仅1件

天津宝坻
认证卖家担保交易快速发货售后保障

作者易哥 著

出版社电子工业出版社

出版时间2020-07

版次1

装帧其他

货号91283779839681112124

上书时间2024-12-03

转转精品图书店的书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九五品
图书标准信息
  • 作者 易哥 著
  • 出版社 电子工业出版社
  • 出版时间 2020-07
  • 版次 1
  • ISBN 9787121391460
  • 定价 100.00元
  • 装帧 其他
  • 开本 16开
  • 页数 386页
  • 字数 640千字
【内容简介】
本书以开源软件MyBatis的源码为例,讲述程序源码阅读的流程、方法、技巧。本书先介绍MyBatis的发展背景与使用方法让读者对MyBatis建立概括性的认识,继而逐步深入剖析MyBatis的源码。并在剖析MyBatis源码的过程讲述源码中所涉及到的编程语言知识、设计模式、架构技巧。最终使得读者在详细了解MyBatis源码的同时掌握源码阅读的基本能力。
【作者简介】
易哥,毕业于浙江大学、山东大学,高级软件系统架构师、网络工程师、数据库工程师、软件测试工程师、注册电气工程师。在校成绩前1%,获得国家奖学金两次,一等奖学金四次,科技创新大赛一等奖三次,以及五四青年科学奖等。主要科研方向为机器学习、分布式算法、容错算法在无线传感网络中的应用,相关论文获得IEEE通信协会最佳论文奖。曾担任网站技术部门负责人,具有丰富的互联网开发经验。先后设计和实现了众多系统和平台,也是活跃的开源开发者。现专注软件系统架构设计与后端开发,著有书籍《通用源码阅读指导书》《高性能架构之道》等。
【目录】
第1篇 背景介绍 

第1章 源码阅读 2 

1.1 源码阅读的意义 2 

1.2 源码阅读的方法 2 

1.3 开源软件 3 

1.4 MyBatis源码 4 

1.5 本书结构 5 

1.5.1 背景知识 5 

1.5.2 文件的指代 5 

1.5.3 方法的指代 8 

第2章 MyBatis概述 10 

2.1 背景介绍 10 

2.1.1 传统数据库连接 10 

2.1.2 ORM框架 11 

2.1.3 MyBatis的特点 12 

2.2 快速上手 12 

2.2.1 MyBatis包的引入 14 

2.2.2 MyBatis的简单配置 15 

2.2.3 基于MyBatis的数据库操作 16 

2.3 MyBatis的核心功能分析 17 

第3章 MyBatis运行初探 20 

3.1 初始化阶段追踪 23 

3.1.1 静态代码块的执行 23 

3.1.2 获取InputStream 24 

3.1.3 配置信息读取 25 

3.1.4 总结 27 

3.2 数据读写阶段追踪 27 

3.2.1 获得SqlSession 27 

3.2.2 映射接口文件与映射文件的绑定 28 

3.2.3 映射接口的代理 28 

3.2.4 SQL语句的查找 31 

3.2.5 查询结果缓存 31 

3.2.6 数据库查询 33 

3.2.7 处理结果集 36 

3.2.8 总结 39 

第4章 MyBatis源码结构概述 40 

4.1 包结构 40 

4.2 分组结构 40 

第2篇 基础功能包源码阅读 

第5章 exceptions包 44 

5.1 背景知识 44 

5.1.1 Java的异常 44 

5.1.2 序列化与反序列化 45 

5.2 Exception类 46 

5.3 ExceptionFactory类 47 

第6章 reflection包 48 

6.1 背景知识 48 

6.1.1 装饰器模式 48 

6.1.2 反射 50 

6.1.3 Type接口及其子类 54 

6.2 对象工厂子包 55 

6.3 执行器子包 57 

6.4 属性子包 59 

6.5 对象包装器子包 61 

6.6 反射核心类 62 

6.7 反射包装类 65 

6.8 异常拆包工具 65 

6.9 参数名解析器 68 

6.10 泛型解析器 69 

第7章 annotations包与lang包 76 

7.1 Java注解详解 76 

7.2 Param注解分析 78 

第8章 type包 81 

8.1 模板模式 82 

8.2 类型处理器 83 

8.2.1 类型处理器的基类与实现类 83 

8.2.2 TypeReference类 85 

8.3 类型注册表 86 

第9章 io包 89 

9.1 背景知识 89 

9.1.1 单例模式 89 

9.1.2 代理模式 89 

9.1.3 静态代理 90 

9.1.4 VFS 92 

9.2 VFS实现类 92 

9.2.1 DefaultVFS类 94 

9.2.2 JBoss6VFS类 94 

9.3 类文件的加载 96 

9.4 ResolverUtil类 97 

第10章 logging包 100 

10.1 背景知识 100 

10.1.1 适配器模式 100 

10.1.2 日志框架与日志级别 102 

10.1.3 基于反射的动态代理 103 

10.2 Log接口 105 

10.3 Log接口的实现类 107 

10.4 LogFactory 108 

10.5 JDBC日志打印 109 

第11章 parsing包 113 

11.1 背景知识 113 

11.1.1 XML文件 113 

11.1.2 XPath 115 

11.2 XML解析 116 

11.3 文档解析中的变量替换 118 

第3篇 配置解析包源码阅读 

第12章 配置解析概述 124 

第13章 binding包 128 

13.1 数据库操作的接入 128 

13.1.1 数据库操作的方法化 129 

13.1.2 数据库操作方法的接入 133 

13.2 抽象方法与数据库操作节点的关联 134 

13.3 数据库操作接入总结 136 

13.3.1 初始化阶段 136 

13.3.2 数据读写阶段 137 

13.4 MyBatis与Spring、Spring Boot的整合 137 

第14章 builder包 139 

14.1 建造者模式 139 

14.2 建造者基类与工具类 142 

14.3 SqlSourceBuilder类与StaticSqlSource类 143 

14.4 CacheRefResolver类和ResultMapResolver类 145 

14.4.1 CacheRefResolver类 145 

14.4.2 ResultMapResolver类 146 

14.5 ParameterExpression类 148 

14.6 XML文件解析 149 

14.6.1 XML文件的声明解析 150 

14.6.2 配置文件解析 151 

14.6.3 数据库操作语句解析 153 

14.6.4 Statement解析 155 

14.6.5 引用解析 157 

14.7 注解映射的解析 159 

14.7.1 注解映射的使用 159 

14.7.2 注解映射解析的触发 160 

14.7.3 直接注解映射的解析 164 

14.7.4 间接注解映射的解析 164 

第15章 mapping包 169 

15.1 SQL语句处理功能 169 

15.1.1 MappedStatement类 169 

15.1.2 SqlSource类 170 

15.1.3 BoundSql 171 

15.2 输出结果处理功能 171 

15.2.1 ResultMap类 172 

15.2.2 ResultMapping类 173 

15.2.3 Discriminator 174 

15.3 输入参数处理功能 176 

15.4 多数据库种类处理功能 176 

15.5 其他功能 178 

第16章 scripting包 179 

16.1 OGNL 179 

16.2 语言驱动接口及语言驱动注册表 183 

16.3 SQL节点树的组建 186 

16.4 SQL节点树的解析 189 

16.4.1 OGNL辅助类 189 

16.4.2 表达式求值器 193 

16.4.3 动态上下文 194 

16.4.4 SQL节点及其解析 196 

16.5 再论SqlSource 202 

16.5.1 SqlSource的生成 202 

16.5.2 DynamicSqlSource的转化 205 

16.5.3 RawSqlSource的转化 206 

16.5.4 SqlSource接口的实现类总结 207 

第17章 datasource包 208 

17.1 背景知识 208 

17.1.1 java.sql包和javax.sql包 208 

17.1.2 DriverManager 209 

17.1.3 DataSource 209 

17.1.4 Connection 210 

17.1.5 Statement 211 

17.2 数据源工厂接口 211 

17.3 JNDI数据源工厂 213 

17.4 非池化数据源及工厂 214 

17.4.1 非池化数据源工厂 214 

17.4.2 非池化数据源 216 

17.5 池化数据源 218 

17.5.1 池化数据源类的属性 218 

17.5.2 池化连接的给出与收回 220 

17.5.3 池化连接 228 

17.6 论数据源工厂 229 

第4篇 核心操作包源码阅读 

第18章 jdbc包 232 

18.1 AbstractSQL类与SQL类 232 

18.1.1 SafeAppendable内部类 232 

18.1.2 SQLStatement内部类 233 

18.1.3 AbstractSQL类 235 

18.1.4 SQL类 236 

18.2 SqlRunner类 237 

18.3 ScriptRunner类 240 

18.4 jdbc包的独立性 241 

第19章 cache包 243 

19.1 背景知识 243 

19.1.1 Java对象的引用级别 243 

19.1.2 ReferenceQueue类 244 

19.2 cache包结构与Cache接口 247 

19.3 缓存键 248 

19.3.1 缓存键的原理 248 

19.3.2 缓存键的生成 251 

19.4 缓存的实现类 252 

19.5 缓存装饰器 252 

19.5.1 同步装饰器 253 

19.5.2 日志装饰器 253 

19.5.3 清理装饰器 254 

19.5.4 阻塞装饰器 259 

19.5.5 定时清理装饰器 262 

19.5.6 序列化装饰器 263 

19.6 缓存的组建 264 

19.7 事务缓存 267 

19.8 MyBatis缓存机制 271 

19.8.1 一级缓存 271 

19.8.2 二级缓存 274 

19.8.3 两级缓存机制 277 

第20章 transaction包 279 

20.1 事务概述 279 

20.2 事务接口及工厂 280 

20.3 JDBC事务 282 

20.4 容器事务 283 

第21章 cursor包 284 

21.1 Iterable接口与Iterator接口 284 

21.2 MyBatis中游标的使用 285 

21.3 游标接口 285 

21.4 默认游标 286 

21.4.1 CursorStatus内部类 287 

21.4.2 ObjectWrapperResultHandler内部类 287 

21.4.3 CursorIterator内部类 288 

21.4.4 DefaultCursor外部类 289 

第22章 executor包 293 

22.1 背景知识 293 

22.1.1 基于cglib的动态代理 293 

22.1.2 javassist框架的使用 295 

22.1.3 序列化与反序列化中的方法 296 

22.1.4 ThreadLocal 302 

22.1.5 存储过程 305 

22.1.6 Statement及其子接口 306 

22.2 主键自增功能 308 

22.2.1 主键自增的配置与生效 308 

22.2.2 Jdbc3KeyGenerator类 310 

22.2.3 SelectKeyGenerator类 312 

22.3 懒加载功能 316 

22.3.1 懒加载功能的使用 316 

22.3.2 懒加载功能的实现 318 

22.3.3 懒加载功能对序列化和反序列化的支持 325 

22.4 语句处理功能 329 

22.4.1 MyBatis对多语句类型的支持 329 

22.4.2 MyBatis的语句处理功能 331 

22.5 参数处理功能 333 

22.6 结果处理功能 334 

22.7 结果集处理功能 336 

22.7.1 MyBatis中多结果集的处理 337 

22.7.2 结果集封装类 340 

22.7.3 结果集处理器 341 

22.8 执行器 347 

22.8.1 执行器接口 348 

22.8.2 执行器基类与实现类 348 

22.9 错误上下文 352 

第23章 session包 355 

23.1 SqlSession及其相关类 355 

23.1.1 SqlSession的生成链 356 

23.1.2 DefaultSqlSession类 357 

23.1.3 SqlSessionManager类 358 

23.2 Configuration类 361 

23.3 其他类 364 

第24章 plugin包 366 

24.1 责任链模式 366 

24.2 MyBatis插件开发 368 

24.3 MyBatis拦截器平台 370 

24.4 MyBatis拦截器链与拦截点 373 

第5篇 总结与展望 

第25章 源码阅读总结 378 

25.1 前期准备 378 

25.1.1 工具准备 378 

25.1.2 项目选择 378 

25.1.3 项目使用 379 

25.2 项目初探 379 

25.3 源码阅读 380 

25.3.1 模块分析 380 

25.3.2 模块归类 380 

25.3.3 自底向上 380 

25.3.4 合理猜测 381 

25.3.5 类比阅读 381 

25.3.6 善于汇总 381 

25.3.7 网格阅读 382 

第26章 优秀开源项目推荐 383 

26.1 Guava 383 

26.2 Tomcat 384 

26.3 Redis 384 

26.4 Dubbo 385 

26.5 React 385
点击展开 点击收起

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP