MyBatis源码阅读
MyBatis源码源码非常优秀,其中用到了各种设计模式。阅读它的源码,可以让我们实际应用中学习设计模式,也能让我们了解ORM框架的设计过程。
爆裂码手
I thought coding was easy.
展开
-
MyBatis中自定义二级缓存(使用Redis做缓存)
在MyBatis中,默认的二级缓存Cache实现是PerpetualCache,而通常,这种方式满足不了分布式集群的项目,这时候,五门可以借助一些第三方服务来做缓存,比如Redis,下面,来尝试下用Redis做MyBatis的二级缓存原创 2018-06-25 16:50:41 · 3496 阅读 · 0 评论 -
MyBatis源码阅读——MyBatis对事务的处理过程分析
事务管理器在 MyBatis 中有两种类型的事务管理器(也就是 type=”[JDBC|MANAGED]”): <environments default="development"> <environment id="development"> <!-- 配置事务管理器 --&a原创 2018-06-13 16:16:18 · 1650 阅读 · 0 评论 -
MyBatis源码阅读——Spring加载MyBatis过程解析
我们平时在项目中都是用Spring来管理的,那么,Spring是如何管理MyBatis的呢?我们来一探究竟。编程式加载MyBatis要了解Spring是如何加载MyBatis的,我想还是先来回顾一下我们是如何用编程的方式去加载MyBatis框架的 String resource = "mybatis/conf/mybatis-config.xml"; InputStre...原创 2018-06-12 11:34:48 · 11501 阅读 · 0 评论 -
MyBatis源码阅读——装饰器模式在MyBatis中的应用
MyBatis中关于Cache和CachingExecutor接口的实现类也使用了装饰者设计模式。Executor是MyBatis执行器,是MyBatis 调度的核心,负责SQL语句的生成和查询缓存的维护;CachingExecutor是一个Executor的装饰器,给一个Executor增加了缓存的功能。此时可以看做是对Executor类的一个增强,故使用装饰器模式是核实的。Exec...原创 2018-06-06 14:45:38 · 1890 阅读 · 0 评论 -
MyBatis源码阅读——通过debug解析MyBatis运行流程
最近在阅读MyBatis框架的源码。发现它其实是一个非常值得阅读的框架。它灵活得运用了常见的设计模式去设计。值得我们去学习。我还是比较喜欢以debug阅读MyBatis的源码。原创 2018-06-07 13:22:08 · 16483 阅读 · 5 评论 -
MyBatis源码阅读——MyBatis初始化流程解析
前言在之前的几篇文章中,我们在源码中看到到了很多类,比如mapperRegistry、mappedStatements等,虽然我们知道它们都是在MyBatis初始化的时候完成加载的,那么我们还是有必要去了解一下其加载过程。 还是跟之前一样,写一个demo,去边debug 边阅读源码。 public static void main(String[] args) throws IOExce...原创 2018-06-07 17:54:15 · 524 阅读 · 0 评论 -
MyBatis源码阅读——MyBatis缓存的原理解析
前言MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制。除了局部的 session 缓存,默认情况下是没有二级开启缓存的。那么MyBatis的一级缓存跟二级缓存在它的框架内部是如何实现的?我们去一探究竟吧。一级缓存一级缓存是默认开启的。当然你也可以关闭。在SQL 映射文件中,设置语句参数即可: flushCache 将其设置为 true,任何...原创 2018-06-07 16:25:34 · 515 阅读 · 0 评论 -
MyBatis源码阅读——MyBatis插件原理
前言MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括。Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)ParameterHandler (getParameterObject...原创 2018-06-11 16:26:56 · 836 阅读 · 0 评论 -
MyBatis源码阅读——MyBatis插件PageHelper的实现过程
前言在之前的文章 MyBatis源码阅读——MyBatis插件原理中我们已经知道MyBatis的插件是如何运行的,这篇文章中,我们将去了解MyBatis常用插件com.github.pagehelper.PageHelper的实现过程示例代码https://github.com/yuyufeng1994/learn-mybatis/blob/master/mybatis-demo/src/m...原创 2019-05-24 11:38:33 · 474 阅读 · 0 评论