![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mybatis源码
lwtxzwt
互联网程序员一枚!
展开
-
Mybatis源码解读(六)--Executor组件(模板模式)
Executor是Mybatis核心接口之一,定义了数据库操作最基础的方法,SqlSession都是基于它来实现的。Executor包位于org.apache.ibatis.executor,这里采用模板模式实现。模板模式模板模式(Template Pattern):一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。定义了一个操作中算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变算法的结构即可重定义该算法的某些实现。原创 2020-07-16 13:03:04 · 713 阅读 · 0 评论 -
Mybatis源码解读(五)--配置加载(建造者模式)
Mybatis启动流程就是组装Configuration对象的过程,在这其中主要就是初始化环境变量和初始化Mapper.xml的映射。Mybatis采用了建造者模式来加载配置。建造者模式建造者模式(Builder Pattern):使用多个简单的对象一步步构建成一个复杂的对象,这种设计模式属于创建型模式,提供了一种创建对象的方式。Builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建。Concre原创 2020-07-01 12:00:58 · 1089 阅读 · 0 评论 -
Mybatis源码解读(四)--数据源模块(工厂模式)
Mybatis的数据源模块位于org.apache.ibatis.datasource。常见的数据源组件都实现了javax.sql.DataSource接口。在Mybatis内不但集成第三方的数据源组件,自身也提供了数据源的实现。而一般情况下数据源初始化较复杂,参数较多,因此这里采用了工厂模式。工厂模式工厂模式(Factory Pattern)属于创建者模式,它提供了一种创建对象的最佳方式。定义了一个创建对象的接口,让其子类自己觉得实例化哪个工厂类,工厂模式使其延迟到子类进行。工厂接口(Fa原创 2020-06-17 08:52:27 · 939 阅读 · 0 评论 -
Mybatis源码解读(三)--缓存模块(装饰器模式)
Mybatis的缓存模块位于org.apache.ibatis.cache。Mybatis的缓存是基于Map实现的,从缓存里读写数据是缓存模块的核心功能。Mybatis的缓存还有很多额外的附加功能,如防止缓存击穿,设置缓存清除策略,日志功能等。这些附加功能可以以任意方式的组合附加到核心功能之上,而Mybatis采取的就是装饰器模式。装饰器模式装饰器模式(DecoratorPattern)允许向一个现有的对象添加新功能,是一种用于替代继承的技术,无需通过继承增加子类就能扩展对象的新功能。相比继..原创 2020-06-06 21:14:04 · 851 阅读 · 0 评论 -
Mybatis源码解读(二)--反射模块
Mybatis反射模块的代码在org.apache.ibatis.reflection。Mybatis的反射十分强大,对jdk的反射进行了很好的封装,完全可以作为一个独立的工具类在其他项目中使用。核心类解读MetaObject:封装了对象的元信息,包装了Mybatis中五个核心的反射类。也是提供给外部使用的反射工具类,通过它可以读取或修改对象的属性。public class MetaObject { //原始的java对象 private final Object originalO原创 2020-05-30 18:36:44 · 943 阅读 · 0 评论 -
Mybatis源码解读(一)--日志模块(适配器模式、动态代理)
Mybatis是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。Mybatis的源码可以说写的非常漂亮,模块之前划分的很清晰,里面大量采用了设计模式,其中的一些模块完全可以二次封装作为工具类来使用。为什么说Mybatis的日志模块优雅日志模块的代码在org.apache.ibatis.logging。Mybatis的日志功能的实现可以说非常优雅,主要有两大优势:1、Mybatis的本身不提供日志功能,而是对接了常用的第三方日志如slf4j、log4j等。在实际使用中根据..原创 2020-05-25 14:25:28 · 1013 阅读 · 0 评论