gpt4 book ai didi

java - 从 SpringFramework Ehcache 列表中提取单个对象

转载 作者:行者123 更新时间:2023-12-02 03:55:49 26 4
gpt4 key购买 nike

使用 org.springframework.cache.ehcache.EhCacheCacheManager 并假设我有方法:

@Cacheable("imageData") // add key = xyz here?
public List<ImageData> getProductIdAndColorCodeForSkus(List<Integer> skus) {
thread sleep
...do some stuff...
return listOfImageData;
}

我已经使用 sku {111111, 111222} 调用了此方法。我稍后想从缓存中提取一个 ImageData 对象,例如:

Cache imageDataCache = cacheManager.getCache("imageData");
imageDataCache.get(key, ImageData.class) // what do I use for key?

我已经尝试过

new Integer(111111)

但这将返回空结果。我也尝试过传递该 sku 的列表。

此外,我知道两个 ImageData 都被缓存并且可以单独检索,因为当我使用具有单个 sku:111111 或 111222 的列表第二次调用此方法时,线程 sleep 不会发生。

最佳答案

缓存抽象使用 SimpleKeyGenerator默认情况下根据方法参数生成 key 。在你的情况下,你有一个 List<Integer>所以这将创建一个 SimpleKey与列表。

如果您对此不满意,可以自定义 KeyGenerator 。由于您直接在其他地方访问缓存,我​​强烈建议您控制 key 生成器,以便您的 API 保持一致。

更多信息in the documentation

关于java - 从 SpringFramework Ehcache 列表中提取单个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35467386/

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