配置ehCache快取策略@Cacheable,@CacheEvict,@CachePut
阿新 • • 發佈:2018-11-14
ehCache
ehcache.xml解析
<defaultCache
maxElementsInMemory="10000"
eternal="false"
overflowToDisk="true"
timeToIdleSeconds="10"
timeToLiveSeconds="120"
diskPersistent="false"
memoryStoreEvictionPolicy="LRU"
diskExpiryThreadIntervalSeconds="120"/>
<!-- maxElementsInMemory 記憶體中最大快取物件數,看著自己的heap大小來設定 -- >
<!-- eternal:true表示物件永不過期,此時會忽略timeToIdleSeconds和timeToLiveSeconds屬性,預設為false -->
<!-- overflowToDisk:true表示當記憶體快取的物件數目達到了maxElementsInMemory界限後,
會把溢位的物件寫到硬碟快取中。注意:如果快取的物件要寫入到硬碟中的話,則該物件必須實現了Serializable接口才行。-->
<!-- maxElementsOnDisk:硬碟中最大快取物件數,若是0表示無窮大 -->
< !-- diskSpoolBufferSizeMB:磁碟快取區大小,預設為30MB。每個Cache都應該有自己的一個快取區。-->
<!-- diskPersistent:是否快取虛擬機器重啟期資料 -->
<!-- diskExpiryThreadIntervalSeconds:磁碟失效執行緒執行時間間隔,預設為120秒 -->
<!-- timeToIdleSeconds: 設定允許物件處於空閒狀態的最長時間,以秒為單位。當物件自從最近一次被訪問後,
如果處於空閒狀態的時間超過了timeToIdleSeconds屬性值,這個物件就會過期,
EHCache將把它從快取中清空。只有當eternal屬性為false ,該屬性才有效。如果該屬性值為0,
則表示物件可以無限期地處於空閒狀態 -->
<!-- timeToLiveSeconds:設定物件允許存在於快取中的最長時間,以秒為單位。當物件自從被存放到快取中後,
如果處於快取中的時間超過了 timeToLiveSeconds屬性值,這個物件就會過期,
EHCache將把它從快取中清除。只有當eternal屬性為false,該屬性才有效。如果該屬性值為0,
則表示物件可以無限期地存在於快取中。timeToLiveSeconds必須大於timeToIdleSeconds屬性,才有意義 -->
<!-- memoryStoreEvictionPolicy:當達到maxElementsInMemory限制時,
Ehcache將會根據指定的策略去清理記憶體。可選策略有:LRU(最近最少使用,預設策略)、
FIFO(先進先出)、LFU(最少訪問次數)。-->
註解引數
// 使用哪個ehcache的name
@AliasFor("cacheNames")
String[] value() default {};
// 配置多個value
@AliasFor("value")
String[] cacheNames() default {};
// {非重要}設定value的key值 直接使用“#引數名”
String key() default "";
//{非必要}指定key生成器 實現org.springframework.cache.interceptor.KeyGenerator介面
String keyGenerator() default "";
// {非重要}指定使用哪個快取管理器
String cacheManager() default "";
//{非重要}指定使用那個快取解析器 通過org.springframework.cache.interceptor.CacheResolver介面
String cacheResolver() default "";
//對引數做判斷
String condition() default "";
// 不同於condition,對結果集做判斷
String unless() default "";
// 是否加鎖
boolean sync() default false;
[email protected]
作用:在查詢時,會先從快取中獲取,若不存在才再發起對資料庫的訪問。
[email protected]
作用:通常用在刪除方法,用來從快取中移除相應資料
[email protected]
作用:用於資料新增和修改操作上,用於更新快取。