
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