spring cache使用bean属性过期

时间:2015-03-13 16:23:48

标签: spring caching spring-cache

是否有一种方法可以根据缓存的POJO属性指示过期/逐出缓存对象。

在下面的代码中,它缓存Foo实例。 Foo类有expiresIn属性 class Foo {     日期到期; }

我想提示基于缓存元素的expiresIn属性的值使spring缓存到期。这可行吗?

@Cacheable("my-cache-key")
    Foo getCachedToken(String userName, String password) throws AuthException

我的Cache.xml如下:

<cache:annotation-driven/>

<bean id="cacheManager" class="org.springframework.cache.support.CompositeCacheManager">
    <property name="cacheManagers">
        <list>
            <ref bean="mapCacheManager"/>
        </list>
    </property>
</bean>

<bean id="mapCacheManager" class="org.springframework.cache.concurrent.ConcurrentMapCacheManager">
    <property name="cacheNames">
        <list>
            <value>my-cache-key</value>
        </list>
    </property>
</bean>

1 个答案:

答案 0 :(得分:0)

我猜您错过了参考指南中的部分名称How can I set the TTL/TTI/Eviction policy/XXX feature?

这是一个缓存基础架构抽象;它不是缓存提供者。 ConcurrentMapCacheManager是我们为测试目的或超简单用例提供的非常简单的实现。如果您需要驱逐策略,请选择支持该驱逐策略的缓存库。想到Ehcache,Guava或Hazelcast。所有这些都有CacheManager实现。