Ehcache二级缓配置永不过期,缓存失效问题 ---- 原因没有加载ehcache.xml配置文件,加载了默认的ehcache-failsafe.xml配置文件
问题: 在ehcache.xml配置文件中的参数 配置的空闲时间,过期时间都很长, 或者说配置的永不过期, 但是在测试项目过程中, 程序还是会有重新查数据库, 配置参数,配置文件好像不生效问题;
解决: 有可能是 加的ehcache.xml配置文件, 项目并没有真正引用进去, 项目而是加载的默认的配置文件;
有没有真正加载自己写的配置文件, 最简单直接的验证办法是, 修改ehcache.xml 中的 在硬盘上存储对象的路径: <diskStore path="java.io.tmpdir" /> 改为自己建立的文件夹: <diskStore path="D:\\ehcachedata2" /> 然后启动项目, 文件夹会有类的data生成, 则证明加载了该配置文件, 该配置生效;
例: com.test.unit.Unit.data
com.test.users.Users.data
怎样加载 自己的配置文件ehcache.xml, 要根据自己的项目搭建, 加载进去;
引用的ehcache.jar包中有一个ehcache-failsafe.xml 配置文件,如果没有配置ehcache.xml文件,ehcache-failsafe.xml将作为默认的ehcache配置。
默认的二级缓存的配置文件位置:
二级缓存添加的实例: 项目 spring+ Struts+hibernate 的配置文件方式:
1 applicationContext.xml 配置开启二级缓存:
<property name="hibernateProperties"><props><prop key="hibernate.dialect">${hibernate.dialect}</prop><prop key="hibernate.show_sql">false</prop><prop key="hibernate.cache.use_second_level_cache">true</prop> <!-- 开启二级缓存 ehcache --><prop key="hibernate.cache.use_query_cache">true</prop> <!-- 开启查询的二级缓存 --><prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop><prop key="hibernate.generate_statistics">true</prop><!-- 开启二级缓存的统计功能 --><prop key="hibernate.cache.use_structured_entries">true</prop><!-- 设置使用结构化方式来维护缓存项 --><prop key="hibernate.current_session_context_class">thread</prop><!-- 当前session的上下文 保证在同一线程中获取到的是同一个session --><!-- <prop key="hibernate.cache.provider_configuration_file_resource_path">ehcache.xml</prop>--><!-- 引入配置文件, 一般放对位置, 项目自动引入,不用手动引入 --></props></property><property name="dataSource"><ref bean="dataSource" /></property>
2 pojo对应的xml映射文件 加入 <cache usage="read-write"/> ; read-write是缓存策略之一;
<hibernate-mapping auto-import="false"><class name="com.test.doc" table="DOC"dynamic-insert="true" dynamic-update="true" ><cache usage="read-write"/><id name="docId" type="java.lang.Integer" unsaved-value="0"><column name="DocId" /><generator class="sequence"><param name="sequence">S_DOC</param> </generator></id><property name="docTitle" type="java.lang.String"><column name="DocTitle"/></property></class>
</hibernate-mapping>
3:dao下的添加: query.setCacheable(true); / getHibernateTemplate().setCacheQueries(true);
public List find(String where){getHibernateTemplate().setCacheQueries(true);return getHibernateTemplate().find(where);}----------public List findHql(String where){List items=new ArrayList(); Session session = getSession(); Query query = session.createQuery(where); query.setCacheable(true);List list= query.list();releaseSession(session);return list;}
4: ehcache.xml:
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<diskStore path="D:\\ehcachedata" />
<defaultCache maxElementsInMemory="5"<!--缓存可以存储的总记录量-->
eternal="false"<!--缓存是否永远不销毁-->
overflowToDisk="true"<!--当缓存中的数据达到最大值时,是否把缓存数据写入磁盘-->
timeToIdleSeconds="15"<!--当缓存闲置时间超过该值,则缓存自动销毁-->
timeToLiveSeconds="120"<!--缓存创建之后,到达该缓存自动销毁-->
/>
</ehcache>
具体详解: 参考引用 http://www.blogjava.net/i369/articles/219407.html
Ehcache二级缓配置永不过期,缓存失效问题 ---- 原因没有加载ehcache.xml配置文件,加载了默认的ehcache-failsafe.xml配置文件相关推荐
- 006-spring cloud gateway-GatewayAutoConfiguration核心配置-GatewayProperties初始化加载、Route初始化加载...
一.GatewayProperties 1.1.在GatewayAutoConfiguration中加载 在Spring-Cloud-Gateway初始化时,同时GatewayAutoConfigur ...
- 配置文件加载位置||外部配置加载顺序||自动配置原理
配置文件加载位置 SpringBoot会从这四个位置全部加载主配置文件:互补配置: 外部配置加载顺序 自动配置原理 1.自动配置原理: 1).SpringBoot启动的时候加载主配置类,开启了自动配置 ...
- 对集合变量定义赋值_SpringBoot配置加载原理(自定义加载配置)
前言 在SpringBoot应用程序中会有很多的地方定义配置文件,如: bootstrap.properties application.properties 或者是SpringCloud中定义的远程 ...
- Springboot 配置类( @Configuration) 不能使用@Value注解从application.propertyes中加载值以及Environment为null解决方案
Springboot 配置类( @Configuration) 不能使用@Value注解从application.propertyes中加载值以及Environment为null解决方案 参考文章: ...
- springBoot项目配置文件加载优先级及同配置覆盖问题
背景: 由于目前网上对于springboot配置文件的加载问题,存在着各种不同的说法.所以导致自己不敢确定到底何种结论才是真正正确的,故专门花费了一些时间进行亲自验证. 验证: 在经过自己对配置文件的 ...
- android异步加载图片并缓存到内存和sd卡上,Android批量图片加载经典系列——采用二级缓存、异步加载网络图片...
http://www.cnblogs.com/jerehedu/p/4560119.html 2015-06-08 09:20 by 杰瑞教育, 232 阅读, 1 评论, 收藏, 编辑一.问题描述 ...
- Nacos配置中心-多配置文件加载
添加配置,加载多个配置文件 spring.cloud.nacos.config.server-addr=127.0.0.1:8848spring.profiles.active=dev# 该配置影响统 ...
- Ehcache配置文件加载方式
2019独角兽企业重金招聘Python工程师标准>>> 会在classpath路径下找ehcache.xml配置文件 CacheManager manager = new Cache ...
- 使用IDEA+maven配置SSM项目步骤,以及配置项目过程中遇到的各种坑(SSM配置文件加载问题,使用注解开发问题,maven开发SSM项目步骤)
问题概览 1. 更改springmvc配置文件的默认位置,但是"classpath:文件路径",路径明明正确,但是就是识别不到,idea报找不到配置文件的错误. 2. 使用myba ...
最新文章
- 吴甘沙:天外飞“厕”、红绿灯消失,未来无人驾驶将被重新定义 | AI ProCon 2019
- qfiledialog的取消_QT对话框去掉帮助和关闭按钮
- png 转数组 工具_推荐8款实用在线制图工具
- Struts2封装获取表单数据方式
- 用shell获取mysql主从状态_shell监控MySQL主从状态脚本两则
- 解决Chrome浏览器高版本无法拖拽离线安装CRX格式插件的问题
- 滚蛋吧,2020的糟心事儿!2021,先“拼”为敬!
- webpack----entry
- 滚动到div的底部?
- 一个黑客都要学习什么语言
- 平均误差、相对误差百分数、均方根误差
- 数学----两个或者多个函数相乘求它们的导数
- SCAU------8615 快乐
- 用计算机弹歌旧梦一场歌词,早知惊鸿一场何必情深一往是什么歌 《旧梦一场》歌词哪里听...
- python tuple用处_Python入门之最少必要知识
- 夏天什么适合做引流产品?夏天用什么东西做引流的产品
- 多智能体强化学习基本概念
- angular 双向绑定和事件绑定实现 输入框内容输出
- java-Map接口
- zto中通电子面单cpcl打印指令实例
热门文章
- Windows直接拖拽文件复制到虚拟机Ubuntu
- R包ggalluvial绘制冲击图(alluvial diagram)
- 周易六十四卦——泽天夬卦
- c#版汉字拼音大全,支持多音字
- Windows内核--Rtl字符串API “不同IRQL“(3.2)
- 低成本打造初创团队的 DevOps 实践(采用 NAS中的KVM 承载 Gogs + Jenkins + Nexus 服务)【0x02】安装Nexus
- Apache ShenYu 集成 RocketMQ 实时采集海量日志的实践
- python 内置函数 和 匿名函数
- 什么是嵌入式?嵌入式技术应用领域
- MC服务器启动脚本写法