我有一个类从服务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参考文档的链接会更好。 –