package com.weblux.launchredis.cacheConfig; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.time.Duration; import java.time.LocalDateTime; @Configuration public class CacheConfig { @Bean public Cache guavaCache() { long secondsUntilMidnight = getSecondsUntilNextMidnight(); return CacheBuilder.newBuilder() .expireAfterWrite(java.time.Duration.ofMinutes(secondsUntilMidnight)) // 设置缓存过期时间 .maximumSize(1000) // 设置缓存最大容量 .build(); } private static long getSecondsUntilNextMidnight() { LocalDateTime now = LocalDateTime.now(); LocalDateTime midnight = now.toLocalDate().plusDays(1).atStartOfDay().plusHours(0).plusSeconds(0).plusMinutes(1); return Duration.between(now, midnight).toMinutes(); } }