Spring Infinispan - 设置缓存对象的到期时间

时间:2018-05-17 17:44:24

标签: caching infinispan spring-cache

我们目前正在使用以下内容。它已经很老了,但现在无法升级到更高版本

`
  <dependency>
     <groupId>org.infinispan</groupId>
     <artifactId>infinispan-spring3</artifactId>
     <version>6.4.0.Final-redhat-4</version>
  </dependency>
  <dependency>
    <groupId>org.infinispan</groupId>
    <artifactId>infinispan-client-hotrod</artifactId>
    <version>6.4.0.Final-redhat-4</version>
  </dependency>
`

我们已经将代码从直接JDG实现(如下所示)修改为基于XML的配置文件中的SpringRemoteCacheManager,并使用Spring cache:advice来定义可缓存,cahce-put,cache-evict方法。

请参阅我们可以控制添加到期时间的当前代码。我们想用Spring做同样的事情 - Infinispan。使用Spring - Infinispan,我们不会编写任何将对象放入缓存中/从缓存中获取对象的应用程序代码,因为它由Spring注释处理(@Cacheable / @CachePut) 感谢是否有人可以提供任何指示

RemoteCache<Object, Object> cache =  jdgRemoteCacheManager.getCache(cacheName);
cache.put(keyName, object, 15, TimeUnit.MINUTES);

1 个答案:

答案 0 :(得分:0)

不幸的是,Spring Cache支持不提供这样的方法(参见Javadocs)。因此,似乎唯一的方法是使用Infinispan提供的RemoteCache API。

也许您可以实现自己的@Cacheable注释并实现所需的所有功能。但这确实是一个春天的问题......