package com.dy.sso.config; 
 | 
  
 | 
  
 | 
import com.github.benmanes.caffeine.cache.Caffeine; 
 | 
import org.springframework.cache.CacheManager; 
 | 
import org.springframework.cache.caffeine.CaffeineCacheManager; 
 | 
import org.springframework.context.annotation.Bean; 
 | 
import org.springframework.context.annotation.Configuration; 
 | 
import java.util.concurrent.TimeUnit; 
 | 
  
 | 
@Configuration 
 | 
public class CaffeineCacheConfiguration { 
 | 
    /* 
 | 
      initialCapacity=[integer]: 初始的缓存空间大小 
 | 
      maximumSize=[long]: 缓存的最大条数 
 | 
      maximumWeight=[long]: 缓存的最大权重 
 | 
      expireAfterAccess=[duration]: 最后一次写入或访问后经过固定时间过期 
 | 
      expireAfterWrite=[duration]: 最后一次写入后经过固定时间过期 
 | 
      refreshAfterWrite=[duration]: 创建缓存或者最近一次更新缓存后经过固定的时间间隔,刷新缓存 
 | 
      weakKeys: 打开key的弱引用 
 | 
      weakValues:打开value的弱引用 
 | 
      softValues:打开value的软引用 
 | 
      recordStats:开发统计功能 
 | 
    注意: 
 | 
      expireAfterWrite和expireAfterAccess同时存在时,以expireAfterWrite为准。 
 | 
      maximumSize和maximumWeight不可以同时使用 
 | 
      weakValues和softValues不可以同时使用weakValues和softValues不可以同时使用 
 | 
     */ 
 | 
    @Bean 
 | 
    public CacheManager cacheManager() { 
 | 
        CaffeineCacheManager cacheManager = new CaffeineCacheManager(); 
 | 
        cacheManager.setCaffeine(Caffeine.newBuilder() 
 | 
                .initialCapacity(10) 
 | 
                .maximumSize(10000) 
 | 
                .expireAfterAccess(30, TimeUnit.MINUTES)); 
 | 
  
 | 
        return cacheManager; 
 | 
    } 
 | 
} 
 |