@CacheEvict中的allEntries與beforeInvocation


在spring cache中,@CacheEvict是清除緩存的注解。其中注解參數可以只有value,key意思是清除在value值空間中的key值數據,此時默認在當前注解方法成功執行之后再清除。這時候就會存在一個問題,也許你的注解方法成功執行了刪除操作,但是后續代碼拋出異常導致未能清除緩存,下次查詢時依舊從緩存中去讀取,這時查詢到的結果值是刪除操作之前的值。

有一個簡單的解決辦法,在注解參數里面加上beforeInvocation為true,意思是說當執行這個方法之前執行清除緩存的操作,這樣不管這個方法執行成功與否,該緩存都將不存在。

當注解參數加上allEntries為true時,意思是說這個清除緩存是清除當前value值空間下的所有緩存數據。

@CacheEvict(value={"atricleCache","atricleCaches"},allEntries=true,beforeInvocation=true)//清除緩存


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM