我想使用 Spring over Ehcache 提供的注释删除满足条件的条目(例如:删除条目 endDate > now),可能使用 SpEl 表达式。
类似的东西:
@CacheEvict(value = Array("intensities"), condition = "samples.end > now")
def save(samples: Samples[Intensity]) = {
...
}
更高级的驱逐功能特定于底层 Ehcache 实现,因此它们无法通过 Spring 提供的基本抽象进行配置。请参阅部分28.5.2
和Spring 文档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]) = {
...
}