diff --git a/tedisson-spring-boot-starter/src/main/java/com/tosan/client/redis/configuration/RedissonClientFactory.java b/tedisson-spring-boot-starter/src/main/java/com/tosan/client/redis/configuration/RedissonClientFactory.java index 1d58dff..fa53bc1 100644 --- a/tedisson-spring-boot-starter/src/main/java/com/tosan/client/redis/configuration/RedissonClientFactory.java +++ b/tedisson-spring-boot-starter/src/main/java/com/tosan/client/redis/configuration/RedissonClientFactory.java @@ -1,6 +1,7 @@ package com.tosan.client.redis.configuration; import com.tosan.client.redis.configuration.redisson.TedissonProperties; +import com.tosan.client.redis.configuration.redisson.TedissonPropertiesCustomizer; import com.tosan.client.redis.exception.TedissonException; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -23,9 +24,11 @@ public class RedissonClientFactory { private static final String REDISS_PROTOCOL_PREFIX = "rediss://"; private final TedissonProperties tedissonProperties; private RedissonClient redisClient; + private List customizers; - public RedissonClientFactory(TedissonProperties tedissonProperties) throws TedissonException { + public RedissonClientFactory(TedissonProperties tedissonProperties, List customizers) throws TedissonException { this.tedissonProperties = tedissonProperties; + this.customizers = customizers; createInstance(); } @@ -54,6 +57,11 @@ private void createInstance() throws TedissonException { try { config.setThreads(tedissonProperties.getRedis().getThreads()); config.setNettyThreads(tedissonProperties.getRedis().getNettyThreads()); + if (CollectionUtils.isNotEmpty(customizers)) { + for (TedissonPropertiesCustomizer customizer : customizers) { + customizer.customize(config); + } + } redisClient = Redisson.create(config); } catch (Exception e) { throw new TedissonException("Could not connect to redis server!"); diff --git a/tedisson-spring-boot-starter/src/main/java/com/tosan/client/redis/configuration/TedissonAutoConfiguration.java b/tedisson-spring-boot-starter/src/main/java/com/tosan/client/redis/configuration/TedissonAutoConfiguration.java index 5c34784..1f20a58 100644 --- a/tedisson-spring-boot-starter/src/main/java/com/tosan/client/redis/configuration/TedissonAutoConfiguration.java +++ b/tedisson-spring-boot-starter/src/main/java/com/tosan/client/redis/configuration/TedissonAutoConfiguration.java @@ -3,6 +3,7 @@ import com.tosan.client.redis.api.LocalCacheManager; import com.tosan.client.redis.api.TedissonCacheManager; import com.tosan.client.redis.configuration.redisson.TedissonProperties; +import com.tosan.client.redis.configuration.redisson.TedissonPropertiesCustomizer; import com.tosan.client.redis.exception.TedissonException; import com.tosan.client.redis.impl.TedissonLocalCacheManagerImpl; import com.tosan.client.redis.impl.localCacheManager.LocalCacheManagerBase; @@ -32,6 +33,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.scheduling.config.TaskManagementConfigUtils; +import java.util.List; import java.util.Optional; import java.util.concurrent.ThreadPoolExecutor; @@ -45,6 +47,8 @@ public class TedissonAutoConfiguration { @Autowired private TedissonProperties tedissonProperties; + @Autowired(required = false) + private List customizerList; @Bean @ConditionalOnProperty(name = "tedisson.redis.enabled", havingValue = "false", matchIfMissing = true) @@ -97,14 +101,14 @@ public CaffeineCacheManager caffeineLocalCacheManager(Optional