博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring+shiro+ehcache整合
阅读量:5741 次
发布时间:2019-06-18

本文共 2260 字,大约阅读时间需要 7 分钟。

1.导入jar包(pom.xml文件)

net.sf.ehcache
ehcache-core
2.6.11

  Spring 整合 ehcache 包 spring-context-support 包

2.使用 ehcache ,导入 ehcache.xml 配置文件

解压 ehcache-core.jar 包 ,将 ehcache-failsafe.xml 复制 src/main/resources

改名 ehcache.xml

 

ehcache.xml文件

 

diskStore

指定数据存储位置,可指定磁盘中的文件夹位置

defaultCache

默认的管理策略

name

Cache的名称,必须是唯一的(ehcache会把这个cache放到HashMap里)

maxElementsInMemory

在内存中缓存的element的最大数目

如果放入cache中的元素超过这个数值,有两种情况:

1、若overflowToDisk的属性值为true,会将cache中多出的元素放入磁盘文件中。

2、若overflowToDisk的属性值为false,会根据memoryStoreEvictionPolicy的策略替换cache中原有的元素。

eternal

设定缓存的elements是否永远不过期。

如果为true,则缓存的数据始终有效,
如果为false那么还要根据timeToIdleSeconds,timeToLiveSeconds判断。

overflowToDisk

如果内存中数据超过内存限制,是否要缓存到磁盘上。

maxElementsOnDisk

在磁盘上缓存的element的最大数目,默认值为0,表示不限制。

timeToIdleSeconds

对象空闲时间,指对象在多长时间没有被访问就会失效。只对eternal为false的有效。默认值0,表示一直可以访问。以秒为单位。

timeToLiveSeconds

对象存活时间,指对象从创建到失效所需要的时间。只对eternal为false的有效。默认值0,表示一直可以访问。以秒为单位。 

diskPersistent

是否在磁盘上持久化。指重启jvm后,数据是否有效。默认为false。 

diskExpiryThreadIntervalSeconds

对象检测线程运行时间间隔。标识对象状态的线程多长时间运行一次。以秒为单位。

iskSpoolBufferSizeMB

DiskStore使用的磁盘大小,默认值30MB。每个cache使用各自的DiskStore。

memoryStoreEvictionPolicy

如果内存中数据超过内存限制,向磁盘缓存时的策略。默认值LRU,可选FIFO、LFU。

缓存的3 种清空策略 :

FIFO ,first in first out (先进先出).

LFU , Less Frequently Used (最少使用).意思是一直以来最少被使用的。缓存的元素有一个hit 属性,hit 值最小的将会被清出缓存。 

LRU ,Least Recently Used(最近最少使用). 

(ehcache 默认值).缓存的元素有一个时间戳,当缓存容量满了,
而又需要腾出地方来缓存新的元素的时候,那么现有缓存元素中时间戳离当前时间最远的元素将被清出缓存。

 

3.applicationContext-ehcache.xml文件

  加载该配置文件

4.修改web.xml文件

contextConfigLocation
classpath:applicationContext*.xml

 5.将cache管理器注入到安全管理器中 

6.对认证数据、授权数据 哪些进行缓存 ?

对应到ehcache.xml文件中的自定义的缓存缓存区

注意: 使需要缓存对象,实现 Serializable 接口

使用注解进行开发

第七步: 在被 spring 管理 bean 对象方法上 使用@Cacheable 、@CacheEvict

@Cacheable 应用缓存区,对方法返回结果进行缓存 ---- 用于查询方法
@CacheEvict 清除缓存区数据 --- 用于 增加、修改、删除 方法

 

转载于:https://www.cnblogs.com/fjkgrbk/p/ehcache_spring_shiro.html

你可能感兴趣的文章
iOS:使用Github托管自己本地的项目代码方式二(客户端方式: Github Desktop)
查看>>
2017帝都租房攻略:昌平通州租金涨幅高达25%
查看>>
dump_stack调用过程【原创】
查看>>
HTML5 & CSS3 初学者指南(4) – Canvas使用
查看>>
深入理解JavaScript中的this关键字
查看>>
Beam概念学习系列之PCollection数据集
查看>>
qq空间等闪动的文字怎么做?
查看>>
QTP的那些事--importsheet注意的一些事情
查看>>
AgileEAS.NET平台开发实例-药店系统-准备开发环境(中)
查看>>
卢沟桥石碑的奇幻之旅
查看>>
Godaddy账户注册教程(图)
查看>>
USB的挂起和唤醒(Suspend and Resume)【转】
查看>>
SQLite异常:unsafenativemethods.sqlite3_open_interop
查看>>
使用C#打开Caps lock键
查看>>
Nginx反向代理和负载均衡部署指南
查看>>
分解机(Factorization Machines)推荐算法原理
查看>>
SQLServer和Oracle的常用函数对比
查看>>
Java容器的概要
查看>>
重建二叉树
查看>>
大数据领域两大最主流集群管理工具Ambari和Cloudera Manger
查看>>