CaffeineCacheConfig.java 1.4 KB
Newer Older
ibizdev's avatar
ibizdev committed
1 2 3 4
package cn.ibizlab.util.cache;

import com.github.benmanes.caffeine.cache.CaffeineSpec;
import org.springframework.boot.autoconfigure.cache.CacheProperties;
5
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
ibizdev's avatar
ibizdev committed
6 7 8 9 10 11 12
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.util.StringUtils;
13
import cn.ibizlab.util.cache.cacheManager.CaffeineCacheManager;
ibizdev's avatar
ibizdev committed
14 15 16 17 18 19 20

/**
 * Caffeine缓存配置类
 */
@EnableCaching
@Configuration
@EnableConfigurationProperties(CacheProperties.class)
21
@ConditionalOnExpression("'${ibiz.cacheLevel:None}'.equals('L1')")
ibizdev's avatar
ibizdev committed
22 23
public class CaffeineCacheConfig {

24 25 26 27
    /**
     * Caffeine配置:设置过期时间
     * @return
     */
ibizdev's avatar
ibizdev committed
28 29
    @Bean
    @Primary
30 31 32 33 34
    public CacheManager cacheManager(CacheProperties cacheProperties) {
        CaffeineCacheManager caffeineCacheManager=new CaffeineCacheManager();
        String strCacheConfig = cacheProperties.getCaffeine().getSpec();
        if (StringUtils.hasText(strCacheConfig)) {
            caffeineCacheManager.setCaffeineCacheConfig(CaffeineSpec.parse(strCacheConfig));
ibizdev's avatar
ibizdev committed
35 36 37
        }
        return caffeineCacheManager;
    }
38

ibizdev's avatar
ibizdev committed
39
}