Java缓存Ehcache-Ehcache的Cache在SSM框架中的配置
需要在Spring配置文件中配置:
<!-- 配置缓存管理器工厂 --> <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <property name="configLocation" value="classpath:ehcache.xml" /> <property name="shared" value="true" /> </bean> <!-- 配置缓存工厂,缓存名称为myCache --> <bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheFactoryBean"> <property name="cacheName" value="myCache" /> <property name="cacheManager" ref="cacheManager" /> </bean>
配置文件内容:
<?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="false"> <diskStore path="D:\\ehcache\cache" />
<!-- 配置一个默认缓存,必须的 --> <!-- overflowToDisk缓存满以后是否允许放在硬盘上 --> <!-- maxElementsOnDisk: 在磁盘上缓存的element的最大数目,默认值为0,表示不限制 --> <!-- eternal设置成true,代表对象永久有效 --> <!-- 是否缓存虚拟机重启期数据。(Server重启时将缓存序列化到本地,后再加载,保证缓存在重启后依然有效)。 --> <defaultCache maxElementsInMemory="1" eternal="true" timeToIdleSeconds="30" timeToLiveSeconds="30" overflowToDisk="true" maxElementsOnDisk="0" diskPersistent="true"/> <!-- 配置自定义缓存 maxElementsInMemory:缓存中允许创建的最大对象数 eternal:缓存中对象是否为永久的,如果是,超时设置将被忽略,对象从不过期。 timeToIdleSeconds:缓存数据的钝化时间,也就是在一个元素消亡之前, 两次访问时间的最大时间间隔值,这只能在元素不是永久驻留时有效, 如果该值是 0 就意味着元素可以停顿无穷长的时间。 timeToLiveSeconds:缓存数据的生存时间,也就是一个元素从构建到消亡的最大时间间隔值, 这只能在元素不是永久驻留时有效,如果该值是0就意味着元素可以停顿无穷长的时间。 overflowToDisk:内存不足时,是否启用磁盘缓存。 memoryStoreEvictionPolicy:缓存满了之后的淘汰算法。 --> <cache name="myCache" maxElementsInMemory="1" eternal="true" timeToIdleSeconds="30" timeToLiveSeconds="30" overflowToDisk="true" maxElementsOnDisk="0" diskPersistent="true"/> </ehcache>
@Component
public class Memory { @Autowired
private Cache ehcache; // 注意这里引入的Cache是net.sf.ehcache.Cache public void setValue(String key, Object value) {
ehcache.put(new Element(key, value));
} //设置过期时间值
public void setExprireTimeValue(String key, Object value, int timeToLiveSeconds) {
Element element = new Element(key, value);
//设置不是永久失效
element.setEternal(false);
//设置过期时间
element.setTimeToLive(timeToLiveSeconds);
ehcache.put(element);
} public Object getValue(String key) {
Element element = ehcache.get(key);
return element != null ? element.getObjectValue() : null;
} /**
* 根据key清空相关信息
*
* @param key
*/
public void delByKey(String key) {
Element element = ehcache.get(key);
if (element != null) {
// 根据key清空之前的信息
ehcache.remove(key);
ehcache.remove(element.getObjectValue());
} } }
Java缓存Ehcache-Ehcache的Cache在SSM框架中的配置的更多相关文章
- SSM框架中,配置数据库连接的问题
MySQL数据库版本是8.0.11. 要用驱动:com.mysql.cj.jdbc.Driver 最主要的是数据库的连接url. 搞了半天才把问题搞明白: 数据库url后面要加上参数: jdbc:my ...
- JAVA使用log4j(另SSM框架中使用log4j)
1.引入jar包 log4j-1.2.13.jar 2.src下建立配置文件:log4j.properties #不+All,只写后一种LOG log4j.rootLogger =ALL,system ...
- SSM框架中数据库无法连接的问题
首先是SSM框架中所有的配置都是没有问题的,而且项目在其他人的环境上也能正常访问数据库:那么最有可能的就是数据库版本的问题导致数据库连接不上,服务器给我的报错是: 15:37:25.902 [C3P0 ...
- SSM框架中,controller的action返回参数给vue.js
在SSM框架中,controller的action中,返回的是视图,即jsp页面或是ModelAndView,若是通过axios给vue传值的话,需要转换为字符串或是user实体类对象. 使用@Res ...
- SSM框架中的前后端分离
认识前后端分离 在传统的web应用开发中,大多数的程序员会将浏览器作为前后端的分界线.将浏览器中为用户进行页面展示的部分称之为前端,而将运行在服务器,为前端提供业务逻辑和数据准备的所有代码统称为后端. ...
- maven springMVC SSM框架中 出现的406 (Not Acceptable)
首先,需要清楚,http state 406代表什么意思: 406是HTTP协议状态码的一种,表示无法使用请求的特性来响应请求的网页.一般指客户端浏览器不接受所请求页面的MIME类型. 出现这样的错误 ...
- 在SSM框架中我设置拦截器filter不能通过注解获取到实现类
我在用注解注入实现类的时候,出现了这样的错误:如以下截图: 这个地方报出的错误是说明我的一个接口类型的类没有获取到,后来我就想要是我的实现类没有获取到那么我就直接new一个实现类然后再进行调用就会出现 ...
- Java缓存组件 EhCache 入门教程
1.技术背景: 系统缓存是位于应用程序与物理数据源之间,用于临时存放复制数据的内存区域,目的是为减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能.缓存设想内存是有限的,缓存的时效性也是有 ...
- 2017.4.28 SSM框架搭建与配置
1.项目结构 2.配置文件 对配置文件进行总结: pom.xml web.xml -> 配置web相关 -> 读取application*.xml 5 -> 读取logback.xm ...
随机推荐
- kafka完全分布式搭建(2.12版)
1.下载解压 tar -xvf kafka_2.12-1.0.0.tgz 2.进入config目录下,修改server.propeties文件 broker.id=0 #当前server编号 port ...
- JS——数组中push对象,覆盖问题,每次都创建一个新的对象
今天写运动框架时,发现将对象push进数组,后面的值会覆盖前面的值,最后输出的都是最后一次的值.其实这一切都是引用数据类型惹的祸. 如果你也有类似问题,可以继续看下去哦. 下面 ...
- mybatis动态update语句
- VS2015编译问题:模块对于 SAFESEH 映像是不安全的
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2026 模块对于 SAFESEH 映像是不安全的. zlibvc C:\MyDirectory\test2\zlib-\contrib\ ...
- 【bzoj3277&&3474】串
*题目描述: 字符串是oi界常考的问题.现在给定你n个字符串,询问每个字符串有多少子串(不包括空串)是所有n个字符串中至少k个字符串的子串(注意包括本身). *输入: 第一行两个整数n,k.接下来n行 ...
- UE4中显示AI Debug信息
运行时,按下引号键('),就会出现AI的Debug信息,包含 AI Behavior Tree EQS Perception 四个大的分类,可以通过键盘上的1234键来显示和关闭相应的选项. 另外在E ...
- HTML canvas中translate()与rotate()的理解
首先,当我们在页面上初始化canvas时,相当于在上面放了一块画布,这块画布我们可以理解为上面有一个坐标系(如下图),左上角是原点,往右是X轴的正方向,往下是Y轴的正方向,我们在画布上绘制的内容都是基 ...
- Hadoop 服务SYS CPU过高导致宕机问题
最近某hadoop集群多次出现机器宕机,现象为瞬间机器的sys cpu增长至100%,机器无法登录.只能硬件重启,ganglia cpu信息如下: 首先怀疑有用户启动了比较奇葩的job,导致不合理的系 ...
- 如何为我们的程序编写开发文档——Java文档注释
Java文档注释是用于生成Java API文档的注释,通过在程序中的类.属性.方法部分加上注释,就可以用javadoc命令生成漂亮的API文档,是程序员进阶的必备技能. 注意,文档注释只说明紧跟其后的 ...
- C3P0 详解
定义: C3P0是一个开源的JDBC连接池,目前使用它的开源项目有Hibernate,Spring等. 数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”.预先在缓冲池中放入一定数量的连接,当需 ...