互动广告机网站建设,无锡市网站建设,网站后台管理系统ie8用不了,企业怎么建网站文章目录前言参考目录学习笔记1、type 包中类的归类总结2、类型处理器2.1、TypeReference 类3、类型注册表3.1、TypeHandlerRegistry#getTypeHandler前言
本文内容对应的是书本第 8 章的内容#xff0c;主要是关于类型处理器 TypeHandler 的学习。
这一章节的学习有些地方理…
文章目录前言参考目录学习笔记1、type 包中类的归类总结2、类型处理器2.1、TypeReference 类3、类型注册表3.1、TypeHandlerRegistry#getTypeHandler前言
本文内容对应的是书本第 8 章的内容主要是关于类型处理器 TypeHandler 的学习。
这一章节的学习有些地方理解还不算深入Debug 之后还是有些不太能够理解的地方到了后面的章节深入学习之后再回头看希望会有新的收获。
参考目录
《通用源码阅读指导书MyBatis源码详解》 本文主要内容来自 第8章 type包。
与上篇一样需要说明的是书中使用的框架版本和本文本专栏使用的版本不一样。
名称书中版本专栏版本MyBatis3.5.23.5.11Spring Boot2.X3.XJDK817
随着版本的升级迭代会有一些内容不尽相同需要结合着进行学习。
学习笔记
1、type 包中类的归类总结
本章开篇首先对包中的所有类进行了分类因为篇幅比较长所以我整理了以下表格方便以后查阅。
组别数量类名称说明类型处理器1接口1基础实现类1辅助类 43实现类1接口TypeHandler 1基础实现类BaseTypeHandler1辅助类TypeReference43实现类*TypeHandlerTypeHandler类型处理器接口BaseTypeHandler类型处理器基础实现TypeReference类型参考器*TypeHandler类型处理器类型注册表3SimpleTypeRegistry、TypeAliasRegistry、TypeHandlerRegistrySimpleTypeRegistry基本类型注册表TypeAliasRegistry类写别名注册表TypeHandlerRegistry类型处理器注册表注解3Alias、MappedJdbcTypes、MappedTypesAlias设置别名MappedJdbcTypes配置JDBC类型处理器MappedTypes配置Java类型处理器异常类1TypeException类型处理相关异常工具类1ByteArrayUtils数组转换工具枚举1JdbcTypeJDBC类型
本章的着重点在于表格前两组即 类型处理器 以及 类型注册表。
2、类型处理器
类型处理器的设计使用了模板模式。 2.1、TypeReference 类 3、类型注册表
类型注册表一共三个分别是 SimpleTypeRegistryTypeAliasRegistry TypeHandlerRegistry。 SimpleTypeRegistry 是一个非常简单的注册表其内部使用一个SIMPLE_TYPE_SET变量维护所有 Java基本类型。 TypeAliasRegistry是一个类型别名注册表其内部使用 typeAliases变量维护类型的别名与类型的对应关系。 TypeHandlerRegistry 是这三个注册表中最为核心的一个数据类型和相关处理器的对应关系就是由它维护的。 运行时保存的内容
// JDBC 类型与对应类型处理器的映射
private final MapJdbcType, TypeHandler? jdbcTypeHandlerMap new EnumMap(JdbcType.class);// Java 类型与 MapJdbcType, TypeHandler? 的映射
private final MapType, MapJdbcType, TypeHandler? typeHandlerMap new ConcurrentHashMap();3.1、TypeHandlerRegistry#getTypeHandler 完