SpringMVC中ehcache缓存
来源:互联网 发布:商业wifi大数据局 编辑:程序博客网 时间:2024/05/08 16:11
SpringMVC配置ehcache缓存
1、添加包
<!-- ehcache --> <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache-core</artifactId> <version>2.4.3</version> </dependency> <dependency> <groupId>com.googlecode.ehcache-spring-annotations</groupId> <artifactId>ehcache-spring-annotations</artifactId> <version>1.2.0</version> </dependency> <dependency> <groupId>com.google.collections</groupId> <artifactId>google-collections</artifactId> <version>1.0</version> </dependency>
2、新建ehcache.xml
<?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"> <diskStore path="user.home/web_ehcache/" /> <defaultCache maxElementsInMemory="3000" eternal="false" timeToIdleSeconds="3600" timeToLiveSeconds="3600" overflowToDisk="true" diskPersistent="false" diskExpiryThreadIntervalSeconds="100" memoryStoreEvictionPolicy="LRU" /> <cache name="testCache" maxElementsInMemory="3000" eternal="false" overflowToDisk="true" timeToIdleSeconds="36000" timeToLiveSeconds="36000" memoryStoreEvictionPolicy="LFU" /> </ehcache>3、新建ehcacheApplication.xml,同时引入 ehcache.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ehcache="http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring-1.1.xsd"> <ehcache:annotation-driven /> <ehcache:config cache-manager="cacheManager"> </ehcache:config> <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <property name="configLocation" value="classpath:ehcache.xml"/> </bean> <!--缓存的生成key--> <!-- <bean id="productKeyGenerator" class="lwz.web.ehcache.ProductCacheKeyGenerator"/> --> </beans>4、在web.xml中引入ehcacheApplication.xml
<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:ehcacheApplication.xml</param-value></context-param>5,以上配置完成,在需要缓存的DAO中加入@Cacheable
@Cacheable(cacheName="testCache")List<DzZgckAccArea> selectUser();6、
ehcache.xml配置属性
<diskStore>==========当内存缓存中对象数量超过maxElementsInMemory时,将缓存对象写到磁盘缓存中(需对象实现序列化接口)
<diskStore path=
""
>==用来配置磁盘缓存使用的物理路径,Ehcache磁盘缓存使用的文件后缀名是*.data和*.index
name=================缓存名称,cache的唯一标识(ehcache会把这个cache放到HashMap里)
maxElementsOnDisk====磁盘缓存中最多可以存放的元素数量,
0
表示无穷大
maxElementsInMemory==内存缓存中最多可以存放的元素数量,若放入Cache中的元素超过这个数值,则有以下两种情况
1
)若overflowToDisk=
true
,则会将Cache中多出的元素放入磁盘文件中
2
)若overflowToDisk=
false
,则根据memoryStoreEvictionPolicy策略替换Cache中原有的元素
eternal==============缓存中对象是否永久有效,即是否永驻内存,
true
时将忽略timeToIdleSeconds和timeToLiveSeconds
timeToIdleSeconds====缓存数据在失效前的允许闲置时间(单位:秒),仅当eternal=
false
时使用,默认值是
0
表示可闲置时间无穷大,此为可选属性,即访问这个cache中元素的最大间隔时间,若超过这个时间没有访问此Cache中的某个元素,那么此元素将被从Cache中清除
timeToLiveSeconds====缓存数据在失效前的允许存活时间(单位:秒),仅当eternal=
false
时使用,默认值是
0
表示可存活时间无穷大,即Cache中的某元素从创建到清楚的生存时间,也就是说从创建开始计时,当超过这个时间时,此元素将从Cache中清除
overflowToDisk=======内存不足时,是否启用磁盘缓存(即内存中对象数量达到maxElementsInMemory时,Ehcache会将对象写到磁盘中),会根据标签中path值查找对应的属性值,写入磁盘的文件会放在path文件夹下,文件的名称是cache的名称,后缀名是data
diskPersistent=======是否持久化磁盘缓存,当这个属性的值为
true
时,系统在初始化时会在磁盘中查找文件名为cache名称,后缀名为index的文件,这个文件中存放了已经持久化在磁盘中的cache的index,找到后会把cache加载到内存,要想把cache真正持久化到磁盘,写程序时注意执行net.sf.ehcache.Cache.put(Element element)后要调用flush()方法。
diskExpiryThreadIntervalSeconds==磁盘缓存的清理线程运行间隔,默认是
120
秒。
diskSpoolBufferSizeMB============设置DiskStore(磁盘缓存)的缓存区大小,默认是30MB。
memoryStoreEvictionPolicy========内存存储与释放策略,即达到maxElementsInMemory限制时,Ehcache会根据指定策略清理内存,共有三种策略,分别为LRU(最近最少使用)、LFU(最常用的)、FIFO(先进先出)。
Ehcache 使用
Spring-Cache key设置注意事项
0 0
- SpringMVC中ehcache缓存
- Ehcache 分布式缓存 -springMVC
- Ehcache 分布式缓存 -springMVC
- Ehcache 分布式缓存 -springMVC
- springMVC整合ehcache,缓存失败
- SpringMvc Ehcache 实现缓存机制
- SpringMVC Ehcache的缓存实现
- springMVC集成缓存框架Ehcache
- springMVC 实现ehcache 缓存 demo
- springmvc-ehcache集成缓存框架
- SpringMVC缓存管理及配置Ehcache缓存
- springmvc配置Ehcache实现缓存管理
- 为springMVC配置ehcache缓存(二级)
- springmvc结合ehcache实现共享对象缓存
- SpringMVC+mybatis+maven+Ehcache缓存实现
- springMVC+mybatis+ehcache缓存配置实践
- springmvc配置Ehcache实现缓存管理
- springMVC中ehcache的实现
- ArrayList、LinkedList、Vector的区别
- 栈——顺序存储
- 谈Java泛型
- iOS开发中尝试下超级表单页面和浮动TextFiled的组合,只需要你平时的1/10时间
- 使用Android Studio的9patch来进行切割图片
- SpringMVC中ehcache缓存
- PHP 输出缓存机制
- Unity3D的Shader基本结构—子着色器SubShader
- 自定义Application
- Android手机屏幕适配
- zynq-7000学习笔记(十二)——Linux下USB摄像头+VDMA+FAST corner+frame buffer测试
- 十六进制导出数
- JAVA学习30_ Java常见面试题及答案 21-30(集合类)
- C++容器学习