想象一下简单的方法
public Data getData(int id);
有@Scheduled
个任务定期调用getData()
。我希望缓存永远不会为任务提供服务,但始终将返回的数据放入缓存中。然后还有一群getData()
的其他消费者。我总是希望它们由缓存提供服务,除非它碰巧没有保存所请求的数据。
我怎么能用Spring做到这一点?
答案 0 :(得分:0)
嗯,一个简单的解决方案可能是为你的getData(int id)
方法提供包装器方法,它允许你有一个版本,它总是从缓存调用,另一个会更新它
@CachePut(value="data")
getDataWithoutCache(int id) {
return getData(id);
}
@Cachable(value="data")
getDataWithCache(int id) {
return getData(id)
}