现在公司的框架使用的是 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" /> 这个路径是否切换成从别的配置文件中读取,刚弄这个,希望大家帮帮忙~
overflowToDisk="true" 这句,如果你点击第三个的时候前2个没有过期,会把旧数据刷新到磁盘里面取<diskStore path="java.io.tmpdir" />这个路径只是存放ehcache的索引文件,可以换成其他路径,比如/home/www/index,或C:\test都可以######OK,按照你的说法,我把自己配置的那个 overflowToDisk=false 也不行 点击第三个的时候前2个还是存放在里面
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。