0

我直接使用SSMCache#put API 来获取缓存并更新密钥。

最初,我使用下面的 spring-cache 注释方法从缓存中读取了值。

@Cacheable(value="CACHE_JOURNALS", key="#ID") 
    public JournalBean getJournalByID(int ID){...}
...
[INFO] (CXServiceImpl.java:sendTo:78) read: [1, xxx, yyy, 5348 ]

然后更新“bean.count”字段并写回。

cache.put(key, bean);
...
[INFO] (SSMCache.java:put:152) Put '[1, xxx, yyy, 5349 ]' under key 1 to cache CACHE_JOURNALS

稍后,Spring 服务尝试读取缓存(CACHE_JOURNALS),但缓存中的“bean.count”的值没有更新,它是旧值(5348)。

我希望我调用正确的 API 来更新缓存元素。任何指针?

4

1 回答 1

0

你能展示一下你是如何配置CACHE_JOURNALS 的吗?

您已启用登录 SSM 以在调用 cache.put 时查看 put 命令。你能做同样的事情@Cacheable吗?让我们看看这个对象存储在缓存中的键是什么。

如果要更新缓存中的元素,则不必使用 SSM 类。您可以使用 Spring 注释@CachePut

于 2014-08-07T06:49:09.730 回答