开发者社区> 问答> 正文

spring 3.1 配置 ehcache 设置最大值问题:报错

现在公司的框架使用的是 spring3 + myibatis 原来没有缓存,查了下资料发现,spring 3以后整合ehcache很方便,今天就尝试整合了下,用的是spring 注解方式,现在有这样一个问题

在ehcache配置如下

<?xml version="1.0" encoding="UTF-8"?>
<ehcache updateCheck="false" dynamicConfig="false">
<cacheManagerEventListenerFactory class="" properties=""/>
    <diskStore path="java.io.tmpdir" /> 
    
<defaultCache
        maxElementsInMemory="1000"
        eternal="false"
        timeToIdleSeconds="120"
        timeToLiveSeconds="120"
        overflowToDisk="true"
        memoryStoreEvictionPolicy="LRU" 
        />
    
    <!-- 每个业务设置自己的符合自己业务的设置 -->    
    <cache name="ExhibitionImages"
        maxElementsInMemory="2"
        eternal="false"
        timeToIdleSeconds="60"
        timeToLiveSeconds="60"
        overflowToDisk="true"
/>
</ehcache> 
 

以下是在DAO调用的配置
   @Cacheable(value="ExhibitionImages",key="#id + 'ExhibitionImageDao.find'")
    public ExhibitionImage find(Integer id){
    System.out.println("从数据库中查询....");
        return getSqlSession().selectOne("ExhibitionImage.find", id);
    }

我明明配置最大在内存中的数量是2个,但是点击第三个的时候也可以了,前面放入的也没有移除,想问下defaultCache 在什么时候生效,还有  <diskStore path="java.io.tmpdir" /> 这个路径是否切换成从别的配置文件中读取,刚弄这个,希望大家帮帮忙~



展开
收起
kun坤 2020-06-07 22:26:27 534 0
1 条回答
写回答
取消 提交回答
  • overflowToDisk="true" 这句,如果你点击第三个的时候前2个没有过期,会把旧数据刷新到磁盘里面取<diskStore path="java.io.tmpdir" />这个路径只是存放ehcache的索引文件,可以换成其他路径,比如/home/www/index,或C:\test都可以######OK,按照你的说法,我把自己配置的那个 overflowToDisk=false 也不行 点击第三个的时候前2个还是存放在里面

    2020-06-07 22:26:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多