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;
|
}
|
}
|