gpt4 book ai didi

java - Spring 缓存更新

转载 作者:行者123 更新时间:2023-11-30 09:20:53 27 4
gpt4 key购买 nike

是否可以让 Spring 的缓存抽象填充给定项的缓存,而不是只读取它?

假设我有方法 Thing getItem(UUID id)setItem(UUID id, Thing thing)。我想在前者上使用 @Cacheable 让它从缓存中读取,如果不存在则调用底层方法。调用 setter 时,我希望将参数 thing 添加到缓存中,然后调用该方法,将其持久保存到底层存储。

最佳答案

正如 Luciano 所说,您可以在该方法上设置 @CachePut 注释,但正如他所说,这将导致您修改 API。不过,这可能是一个优势,具体取决于您是否喜欢通过流畅的 API 风格获得的语义。

虽然您还有另一个选择,但它会将您与 Spring 联系起来,并导致您的 setItem 代码有点麻烦。您始终可以连接 CacheManager 并在 setItem 方法中自行设置缓存中的数据。

所以它看起来像这样:

@Autowire private CacheManager cacheManager;

public void setItem(UUID id, Thing thing) {
Cache c = cacheManager.getCache("cacheName");
if (c != null) {
c.put(id, thing);
}
//Do more
}

关于java - Spring 缓存更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17194007/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com