zoukankan      html  css  js  c++  java
  • MyBatis笔记——EhCache二级缓存

    介绍

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

    我们系统为了提高系统并发,性能、一般对系统进行分布式部署(集群部署方式) 
    结构

    不使用分布缓存,缓存的数据在各各服务单独存储,不方便系统开发。所以要使用分布式缓存对缓存数据进行集中管理。

    mybatis无法实现分布式缓存,需要和其它分布式缓存框架进行整合。这里我主要介绍整合EhCache。下面开始实例。


    实例

    1.导入MyBatis-EhCache整合包

    整合包

    项目结构如下: 
    项目结构

    2.classpath下添加EhCache配置文件(ehcache.xml)

    <ehcache>
        <diskStore path="F:cache_test" />
        <defaultCache eternal="false" maxElementsInMemory="1000"
            timeToIdleSeconds="20" timeToLiveSeconds="20" overflowToDisk="true"
            maxEntriesLocalDisk="10000000"
            diskExpiryThreadIntervalSeconds="20" memoryStoreEvictionPolicy="LRU" />
    </ehcache>

    3.MyBatis配置文件(SqlMapConfig.xml)打开二级缓存

        <settings>
            <setting name="cacheEnabled" value="true"/>
        </settings>

    4.Mapper配置文件添加cache标签

        <cache type="org.mybatis.caches.ehcache.EhcacheCache"/>

    5.缓存结果继承序列化接口

    public class User implements Serializable

    测试

    测试类如下:

    package cn.pwc.test;
    
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    import cn.pwc.dao.UserMapper;
    import cn.pwc.pojo.User;
    
    public class Test {
    
        public static void main(String[] args) {
            SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(Test.class.getClassLoader().getResourceAsStream("SqlMapConfig.xml"));
            SqlSession session = factory.openSession();
            UserMapper mapper = session.getMapper(UserMapper.class);
            User user = mapper.findById(1);
            System.out.println(user.toString());
            session.commit();
            session.close();
            SqlSession session2 = factory.openSession();
            UserMapper mapper2 = session2.getMapper(UserMapper.class);
            User user2 = mapper2.findById(1);
            System.out.println(user2.toString());
            session2.commit();
            session2.close();
        }
    
    }
    

    测试结果如下:

    DEBUG [cn%002epwc%002edao%002e%0055ser%004dapper.data]     net.sf.ehcache.store.disk.Segment     - fault removed 0 from heap
    DEBUG [cn%002epwc%002edao%002e%0055ser%004dapper.data]     net.sf.ehcache.store.disk.Segment     - fault added 0 on disk
  • 相关阅读:
    [树形DP]Luogu P1131 [ZJOI2007]时态同步
    [状压DP]JZOJ 1303 骑士
    [DFS]JZOJ 1301 treecut
    [最小费用最大流]JZOJ 4802 探险计划
    [KMP][倍增求LCA]JZOJ 4669 弄提纲
    [DP]JZOJ 1758 过河
    列表生成式和生成器表达式
    协程函数
    生成器
    迭代器
  • 原文地址:https://www.cnblogs.com/haw2106/p/6952005.html
Copyright © 2011-2022 走看看