MyBatis源码第12章之缓存模块
2023-09-14 09:14:05 时间
一、前言
数据库的资源是珍贵的,我们要充分利用以及减少对数据库的直接访问,提高系统的性能。缓存就是用来解决一些系统性能瓶颈的,充分发挥缓存的功能,使得系统高可用。前面介绍了装饰器模式与JDK动态代理,其实并不是与之没有联系的,都是为了为后面埋下伏笔。MyBatis的缓存模块就是使用了装饰器模式去实现相关功能的,不过它类图就简单些,没有抽象装饰器,都是具体装饰器。那么MyBatis到底是怎么实现缓存功能的呢,这给我们的日常开发带来哪些启发?
二、缓存模块
1、接口层Cache
public interface Cache {
/**
* @return The identifier of this cache
*/
String getId();
/**
* @param key
* Can be any object but usually it is a {@link CacheKey}
* @param value
* The result of a select.
*/
void putObject(Object key, Object value);
/**
* @param key
* The key
* @return The object stored in the cache.
*/
Object getObject(Object key);
/**
* As of 3.3.0 this method is only called during a rollback
* for any previous value that was missing in the cache.
* This lets any blocking cach
相关文章
- mybatis+spring报错PropertyAccessException 1
- mybatis简单案例源码详细【注释全面】——前期准备
- Mybatis上路_05-使用命令行自动生成
- springboot整合mybatis使用阿里(阿里连接池)和xml方式
- 【Java】关于MyBatis框架的总结
- mybatis 二级缓存
- spring boot整合mybatis+通用mapper+pagehelper分页插件
- 【MyBatis笔记10】Mybatis中几个动态SQL标签和内置参数
- 【MyBatis笔记06】MyBatis中的三种关联查询方式(一对一、一对多、多对多)
- Spring+SpringMVC+Mybatis(开发必备技能)04、mybatis自动生成mapper_dao_model(包含工具与视频讲解) 纯绿色版本、配套使用视频,100%运行成功
- MyBatis快速入门——第四章、mybatis动态sql_if_choose_when
- MyBatis快速入门——第四章、mybatis动态sql_foreach
- mybatis_generator_逆向工程的使用笔记
- MyBatis之Hello world(Mybatis入门)
- MyBatis SqlSessionDaoSupport实例
- MyBatis源码第5章之反射
- MyBatis源码第2章之反射
- MyBatis的核心执行流程
- 【mybatis3】MyBatis源码分析
- Mybatis源码分析之(七)Mybatis一级缓存和二级缓存的实现
- Mybatis源码分析之(六)mybatis拦截器(Interceptor)的实现原理
- Mybatis源码分析开篇
- Mybatis源码分析之(五)mapper如何将数据库数据转换成java对象的