目录


ehcache

ehcache 是一个分布式缓存框架 !

  1. 为什么需要分布式缓存?

    在大型的项目中,服务器是肯定不止一台的,每台服务器都有自己的缓存,那么当用户去 A服务器 查询一个数据以后,A服务器 将其 缓存 到内存中,然后如果地址跳准到 B服务器这时候,如果再次需要之前查询的数据,我们还必须再次查询数据库,因为缓存在 A服务器 上,不在 B服务器 上 ;

    我们很容易发现,这样很不好,存在 资源的浪费,多台服务器需要缓存多份相同的数据

    我们应该将 缓存数据 集中起来进行保管,这样,无论哪一台服务器,都让其来我这里查询缓存;

    如何集中,就需要使用第三方的分布式缓存框架了 ,这里选用 ehcache


mybatis 的 Cache 接口

虽然 mybatis 有自己的缓存策略,但是,实质上它的缓存策略,不是很好,因为他直接在内存中进行数据的缓存;

我们是可以自己提供 Cache 接口的 实现类,然后配置,来替换掉 mybatis 的默认实现的 ;

不过,一般不用我们自己写,mybatis 和谁进行整合,谁一般都会有实现类 ;


整合步骤

  1. 引入 ehcache

    下载完事后, 将 mybatis-ehcache-1.1.0.jarehcache-core-2.6.11.jar 两个包引入工程 ;

    其中 ehcache 是依赖于 slf4j 日志包的,但是一般 mybatis 使用的时候,都导入了这个包 ;

  2. 引入 ehcache 配置文件

    放置路径无所谓,可以放在任意包下面, ehcache.xml ,我发现我没有配置文件,它也没报错;

  3. 在 映射关系 中配置 Cache 接口的实现类

    <!--开启二级缓存-->
    <!--type 指定 cache 接口的实现类,mybatis的默认实现类是 PerpetualCache-->
    <!--要和 ehcache 整合,我们需要将 type 改为,ehcache的实现类-->
    <cache type="org.mybatis.caches.ehcache.EhcacheCache"/>

最新文章

  1. 基于 jQuery 实现垂直滑动的手风琴效果
  2. JAVA对象和XML文档、原来他们之间还有这一出
  3. Lintcode: Topological Sorting
  4. SPAdes
  5. php throw new Excpetion()之后,程序还往下继续运行吗?
  6. js LocalStorage
  7. GoF——抽象工厂模式
  8. Circuit Breaker Features
  9. jsp的标签库和自定义标签
  10. 关于mysql安装到最后一步老是停留在starting server,显示无响应
  11. JavaScript Math(算数)对象
  12. Mysql8.0命令
  13. Web前端-Vue.js必备框架(四)
  14. XVII Open Cup named after E.V. Pankratiev. GP of Moscow Workshops
  15. 第35节:Java面向对象中的多线程
  16. python——作用域之LEGB规则
  17. o.s.b.d.LoggingFailureAnalysisReporter
  18. python学习日记(文件操作练习题)
  19. cometd简单用例
  20. 关于产品UE的胡思乱想

热门文章

  1. P3368 【模板】树状数组 2
  2. Servlet页面跳转的两种方式
  3. 编译工具链,生成各个平台的ffmpeg版本的库
  4. 消息中间件MQ
  5. hibernate-validator校验框架学习
  6. I am a legend: Hacking Hearthstone with machine-learning Defcon talk wrap-up
  7. 多线程循环打印ABC
  8. SpringBoot/SpringMVC 下载本地文件
  9. ColorDrawable
  10. C++ unique