Claire's Blog

Thinking will not overcome fear but action will.

Mybatis基础支持层-Binding模块

Binding/代理/工厂

mybatis基础支持层-Binding模块 一、MapperRegistry Mapper的注册中心,主要用于addMapper和getMapper,并对已经加载的Mapper进行缓存 addMapper public <T> void addMapper(Class<T> type) { //是否为接口 if (type.isI...

Mybatis基础支持层-数据源模块

工厂方法模式/数据源

mybatis基础支持层-数据源模块 javax.sql.DataSource接口,Mybatis也提供了实现类PooledDataSource、UnpooledDataSource |--UnpooledDataSource <- UnpooledDataSourceFactory --| | ...

Mybatis基础支持层-资源加载模块

类加载器/单例/资源加载

mybatis基础支持层-资源加载模块 一、ClassLoader java虚拟机中类加载器,负责加载来自文件、网络或者其他来源的类文件 默认的类加载器有三种 Bootstrap ClassLoader : 负责加载 jdk中的rt.jar中的类文件 Extension ClassLoader :负责加载jre扩展类库,位于jre/lib/ex...

Mybatis基础支持层-日志模块

设计模式/适配器/代理/JDK动态代理/日志

mybatis-基础支持层-日志模块 mybatis给出了一套统一的日志接口供上层对接不同形式的日志框架 一、特点:适配器模式 1.设计模式的六大原则 单一职责原则 : 一个类只负责唯一项职责 里式替换原则 : 遵循里式替换原则,能够设计出更为合适的继承体系 依赖倒置原则 : 系统的高层模块不应该依赖底层模块的实现,二者...

Mybatis基础支持层-反射模块05

TypeHandler/TypeHandlerRegistry/TypeAliasRegistry

Mybatis基础支持层-反射模块:类型转换 一、codeLookUp 维护数据库类型和java类型之间的映射 java.sql.Types类,记录了数据库中的一些数据类型的code public enum JdbcType { /* * This is added to enable basic support for the ...

mybatis基础支持层-反射模块-04

反射模块:MetaClass/ObjectWrapper/MetaObject

Mybatis基础支持层-反射模块:MetaClass 一、MetaClass MetaClass是对类级别元信息的封装和处理 MetaClass 通过Reflector和PropertyTokenizer组合使用,实现对复杂的属性表达式解析,并实现了获取指定属性描述信息的功能。 依赖reflector获取属性名,中间涉及属性表达式解析,递归拆解,返回类型的判定 priva...

Mybatis基础支持层-解析器模块

Mybatis 解析器

Mybatis基础支持层-解析器模块 Mybatis三层架构:接口层,核心处理层,基础支持层 基础支持层:数据源模块、反射模块、缓存模块、日志模块、事务管理模块、Binding模块、类型转换、资源解析、解析器模块 一 XML内容解析 之前有一篇博文,详细描述了多种XML解析方式:Dom SAX StAX XPath: 使用路径表达式来选取XM...

mybatis基础支持层-反射模块-03

ObjectFactory/Property工具类

mybatis基础支持层-反射04:ObjectFactory/Property工具类 一、ObjectFactory public interface ObjectFactory { /** 设置参数 */ void setProperties(Properties properties); /** 根据class 创建一个无参构造类 */ &l...

Mybatis基础支持层-反射模块-02

Type/TypeParameterResolver

mybatis基础支持层-反射模块:TypeParameterResolver 一、Type 首先了解一些基础类型的含义,Type有哪些实现类和子接口:Class,ParameterizedType,GenericArrayType,TypeVariable,WildcardType public interface Type { /** * Returns ...

Mybatis基础支持层-反射模块-01

Reflector/Invoker/ReflectorFactory

Mybatis基础支持层-反射模块:Reflector/Invoker/ReflectorFactory Mybatis三层架构:接口层,核心处理层,基础支持层 基础支持层:数据源模块、反射模块、缓存模块、日志模块、事务管理模块、Binding模块、类型转换、资源解析、解析器模块 反射功能非常常见,用于通过类的数据获取对象,或是根据名臣获取对象的属性或方法。org.apac...