我要求通过再次调用API重新缓存过期的缓存
以下是我的缓存管理器配置
private CaffeineCache buildCache(String name, Ticker ticker, int minutesToExpire) {
return new CaffeineCache(name, Caffeine.newBuilder()
.refreshAfterWrite(minutesToExpire, TimeUnit.MINUTES)
.maximumSize(100)
.ticker(ticker)
.build());
但是在启动应用程序时,它会引发以下异常
原因:java.lang.IllegalStateException:refreshAfterWrite需要LoadingCache
答案 0 :(得分:0)
您需要为build
方法提供一个CacheLoader。
return new CaffeineCache(
name,
Caffeine.newBuilder()
.refreshAfterWrite(minutesToExpire, TimeUnit.MINUTES)
.maximumSize(100)
.ticker(ticker)
.build(key -> createExpensiveObject(key))
);
CacheLoader是必须由您实现的类/方法。