我正在尝试@Cacheable对Spring 3.1 的批注支持,并且想知道是否有任何方法可以通过设置TTL在一段时间后清除缓存的数据?现在,从我看到的内容中,我需要使用@CacheEvict和自己清除它,并与@Scheduled我一起使用可以实现TTL实现,但是对于这样一个简单的任务来说似乎有点多了吗?
@Cacheable
@CacheEvict
@Scheduled
参见http://static.springsource.org/spring/docs/3.1.x/spring-framework- reference/htmlsingle/spring-framework-reference.html#cache-specific- config:
如何设置TTL / TTI /驱逐策略/ XXX功能? 直接通过您的缓存提供程序。缓存抽象是…嗯,抽象不是缓存实现
如何设置TTL / TTI /驱逐策略/ XXX功能?
直接通过您的缓存提供程序。缓存抽象是…嗯,抽象不是缓存实现
因此,如果您使用EHCache,请使用EHCache的配置来配置TTL。
您也可以使用Guava的CacheBuilder来构建缓存,并将该缓存的ConcurrentMap视图传递给ConcurrentMapCacheFactoryBean的setStore方法。