我有一個類從服務XXX執行一些讀取操作。這些讀取操作最終將執行數據庫讀取,並且我想通過緩存類中每個方法的結果爲每個方法指定的自定義鍵優化這些調用。Spring中的自動緩存失效
Class a {
public Output1 func1(Arguments1 ...) {
...
}
public Output2 func2(Arguments2 ...) {
...
}
public Output3 func3(Arguments3 ...) {
...
}
public Output4 func4(Arguments4 ...) {
...
}
}
我想使用Spring caching(@Cacheable annotation)
爲每種方法的緩存結果。
但是,我想通過某種機制(ttl等)自動發生緩存失效。春季緩存可能嗎?我知道我們有一個@CacheEvict
註釋,但我希望驅逐自動發生。
任何幫助,將不勝感激。
你可以指向基本Spring緩存設置ttl的配置嗎?我在http://docs.spring.io/spring/docs/current/spring-framework-reference/html/cache.html –
的文檔中找不到任何與ttl相關的配置。您好@KumarMrinal我很抱歉讓人失望但由Spring配置的默認緩存是不支持Time Live的ConcurrentHashMap。這意味着你必須切換到另一個支持is的提供者。上面已經提到的EHCache對於非分佈式緩存提供者來說是一個很好的選擇。 –
@AlexanderPetrov很好的答案,通過提供一個指向緩存提供者的鏈接(比如你在你的答案中提到的EhCache)以及一個你從中獲得引用的Spring參考文檔的鏈接會更好。 –