zoukankan      html  css  js  c++  java
  • (十三)mybatis 整合 ehcache

    目录


    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"/>

  • 相关阅读:
    51nod 1412 AVL树的种类(经典dp)
    HDU 6141 I am your Father!(最小树形图+权值编码)
    POJ 3164 Command Network(最小树形图模板题+详解)
    HDU 6125 Free from square(状态压缩+分组背包)
    HDU 6143 Killer Names(容斥原理)
    CSU 1808 地铁(最短路变形)
    HDU 6128 Inverse of sum(同余)
    HDU 6121 Build a tree(完全K叉树)
    HDU 6129 Just do it(杨辉三角)
    HDU 6127 Hard challenge(扫描线)
  • 原文地址:https://www.cnblogs.com/young-youth/p/11665667.html
Copyright © 2011-2022 走看看