1

我想使用 Spring over Ehcache 提供的注释删除满足条件的条目(例如:删除条目 endDate > now),可能使用 SpEl 表达式。

类似的东西:

 @CacheEvict(value = Array("intensities"), condition = "samples.end > now")
 def save(samples: Samples[Intensity]) = {
   ...
 } 
4

1 回答 1

1

更高级的驱逐功能特定于底层 Ehcache 实现,因此它们无法通过 Spring 提供的基本抽象进行配置。请参阅部分28.5.2Spring 文档28.7中的部分。

ehcache.xml您可以在文件中配置 Ehcache 的驱逐行为。虽然与您的代码试图实现的不完全相同,但该timeToLiveSeconds属性可能是您正在寻找的那个。有关更多详细信息,请参阅Ehcache 文档

更新

再想一想,以下 SpEL 表达式完全符合您的意图,而无需触及 Ehcache 特定设置:

@CacheEvict(
    value = Array("intensities"),
    condition = "samples.end.after(new java.util.Date())")
def save(samples: Samples[Intensity]) = {
   ...
} 
于 2012-09-17T15:43:48.157 回答