All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.anonymousmister.bootfastconfig.cache.redis.RedisCacheConfig Maven / Gradle / Ivy

package com.github.anonymousmister.bootfastconfig.cache.redis;


import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.cache.RedisCacheWriter;

import java.util.HashMap;
import java.util.Map;

public class RedisCacheConfig {

    private final Map configMap;

    private RedisCacheConfiguration defaultRedisCacheConfig;

    public RedisCacheConfig() {

        this.configMap = new HashMap<>();

    }

    public RedisCacheConfig(Map configMap) {
        this.configMap = configMap;
    }

    public void addRedisCacheConfig(String cacheName, RedisCacheConfiguration redisCacheConfiguration) {
        if (cacheName == null || redisCacheConfiguration == null) {
            return;
        }
        configMap.put(cacheName, redisCacheConfiguration);
    }

    public void setDefaultRedisCacheConfig(RedisCacheConfiguration redisCacheConfiguration) {
        if (this.defaultRedisCacheConfig == null) {
            this.defaultRedisCacheConfig = redisCacheConfiguration;
        }
    }


    public RedisCacheManager buildRedisCacheManager(RedisCacheWriter cacheWriter) {

        RedisCacheManager.RedisCacheManagerBuilder builder = RedisCacheManager.builder(cacheWriter);
        if (!configMap.isEmpty()) {
            builder.initialCacheNames(configMap.keySet());
            builder.withInitialCacheConfigurations(configMap);
        }
        builder.cacheDefaults(defaultRedisCacheConfig);
        return builder.build();
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy