1.在resources目录下添加ehcache的配置文件ehcache.xml
<ehcache>
<diskStore path="java.io.tmpdir/shiro-spring-sample"/>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"<!--设置对象在失效前的允许时间(:秒)当
eternal=false的时候对象不是永久有效时使用,可选属性,默认值是0,也就是闲置时间无限大-->
timeToLiveSeconds="120"<!--设置对象在失效前允许存活时间(单位:秒)。最
大时间介于创建时间和失效时间之间。仅当eternal=false对象不是永久有效时使用,默认是0.,也就是对象存活时间无穷大-->
overflowToDisk="false"<!--当内存中对象数量达到maxElementsInMemory时
Ehcache将会对象写到磁盘中-->
diskPersistent="false"<!--是否缓存虚拟机重启期数据->
diskExpiryThreadIntervalSeconds="120"
/>
<cache name="user" <!--缓存名字-->
maxElementsInMemory="10000"<!--缓存最大数-->
eternal="true"<!--对象是否永久有效,一旦设置timeout将不起作用-->
overflowToDisk="true"<!--缓存最大数-->
diskPersistent="true"<!--缓存最大数-->
diskExpiryThreadIntervalSeconds="600"/><!--缓存最大数-->
</ehcache>
配置含义
- diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区。
- maxElementsOnDisk:硬盘最大缓存个数。
注解 @EnableCaching// 标注启动了缓存
@Bean:向spring容器中加入bean
value:缓存位置名称,不能为空,如果使用EHCache,就是ehcache.xml中声明的cache的name
key:缓存的key,默认为空,既表示使用方法的参数类型及参数值作为key,支持SpEL
condition:触发条件,只有满足条件的情况才会加入缓存,默认为空,既表示全部都加入缓存,支持SpEL
allEntries:CacheEvict参数,true表示清除value中的全部缓存,默认为false