diff --git a/src/main/java/jasper/config/RedisConfig.java b/src/main/java/jasper/config/RedisConfig.java index 09d3f210..3fd81f18 100644 --- a/src/main/java/jasper/config/RedisConfig.java +++ b/src/main/java/jasper/config/RedisConfig.java @@ -12,11 +12,15 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; +import org.springframework.cache.CacheManager; +import org.springframework.cache.caffeine.CaffeineCacheManager; +import org.springframework.cache.support.CompositeCacheManager; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Profile; import org.springframework.core.task.TaskExecutor; +import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.listener.RedisMessageListenerContainer; @@ -117,6 +121,14 @@ public TaskExecutor taskExecutor() { return executor; } + @Bean + public CacheManager cacheManager(CaffeineCacheManager caffeineCacheManager, RedisConnectionFactory connectionFactory) { + var redisCacheManager = RedisCacheManager.builder(connectionFactory).build(); + var manager = new CompositeCacheManager(caffeineCacheManager, redisCacheManager); + manager.setFallbackToNoOpCache(true); + return manager; + } + @Bean public IntegrationFlow redisPublishCursorFlow() { return IntegrationFlows