Claire's Blog

Thinking will not overcome fear but action will.

Mybatis核心处理层-初始化

建造者模式/BaseBuilder/xml

mybatis核心处理层-初始化 初始化主要依靠读取mybatis配置文件mybatis-config.xml 或者通过注解进行包扫描的方式,进行对象的注入 一、建造者模式-生成器模式 将一个复杂对象的构建过程与他的表示分离。一个复杂对象的构建也可以拆成若干简单步骤,用户指出了解对象类型和内容,不需要关注内部复杂的构造过程 1. 角色 建造者(Builder)...

Mybatis基础支持层-缓存模块

一级缓存/二级缓存/装饰器模式

mybatis基础支持层-缓存模块 一、装饰器模式 使用场景:需要动态的为对象添加功能,基于组合的方式实现(而不是继承,组合优于继承),保证已有组件的稳定性 角色: Component 组件: 接口,定义了全部组件实现类以及所有装饰器实现的行为 ConcreteComponent 具体组件实现类 : 实现了Component接口,实现基础功能的...

Mybatis基础支持层-事务模块

事务

mybatis基础支持层-事务模块 模块本身相对简单,含有TransactionFactory,Transaction两个接口,及各有两个实现,在最终事务的过程是依靠例如Spring等容器的调度实现的,后续还会继续了解Spring & Mybatis实现事务的过程 一、Transaction public interface Transaction { /** ...

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...