CacheConfig.java 1020 B

1234567891011121314151617181920212223242526272829
  1. package com.weblux.launchredis.cacheConfig;
  2. import com.google.common.cache.Cache;
  3. import com.google.common.cache.CacheBuilder;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. import java.time.Duration;
  7. import java.time.LocalDateTime;
  8. @Configuration
  9. public class CacheConfig {
  10. @Bean
  11. public Cache<String, Object> guavaCache() {
  12. long secondsUntilMidnight = getSecondsUntilNextMidnight();
  13. return CacheBuilder.newBuilder()
  14. .expireAfterWrite(java.time.Duration.ofMinutes(secondsUntilMidnight)) // 设置缓存过期时间
  15. .maximumSize(1000) // 设置缓存最大容量
  16. .build();
  17. }
  18. private static long getSecondsUntilNextMidnight() {
  19. LocalDateTime now = LocalDateTime.now();
  20. LocalDateTime midnight = now.toLocalDate().plusDays(1).atStartOfDay().plusHours(0).plusSeconds(0).plusMinutes(1);
  21. return Duration.between(now, midnight).toMinutes();
  22. }
  23. }