弹簧靴@cacheable到期时间
2022-08-31 22:07:33
我已经实现了缓存,现在我想添加一个到期时间。
如何设置春季靴子的到期时间?@Cacheable
这是一个代码片段:
@Cacheable(value="forecast",unless="#result == null")
我已经实现了缓存,现在我想添加一个到期时间。
如何设置春季靴子的到期时间?@Cacheable
这是一个代码片段:
@Cacheable(value="forecast",unless="#result == null")
我使用这样的生活黑客:
@Configuration
@EnableCaching
@EnableScheduling
public class CachingConfig {
public static final String GAMES = "GAMES";
@Bean
public CacheManager cacheManager() {
ConcurrentMapCacheManager cacheManager = new ConcurrentMapCacheManager(GAMES);
return cacheManager;
}
@CacheEvict(allEntries = true, value = {GAMES})
@Scheduled(fixedDelay = 10 * 60 * 1000 , initialDelay = 500)
public void reportCacheEvict() {
System.out.println("Flush Cache " + dateFormat.format(new Date()));
}
}
请注意,这个答案使用ehcache,它是受支持的Spring Boot缓存管理器之一,可以说是最受欢迎的缓存管理器之一。
首先,您需要添加到:pom.xml
<!-- Spring Framework Caching Support -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
在:src/main/resources/ehcache.xml
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<defaultCache eternal="true" maxElementsInMemory="100" overflowToDisk="false" />
<cache name="forecast"
maxElementsInMemory="1000"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="false"
memoryStoreEvictionPolicy="LRU" />
</ehcache>