首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Spring,redission客户端禁用redis缓存-无Spring引导

使用Spring,redission客户端禁用redis缓存-无Spring引导
EN

Stack Overflow用户
提问于 2020-03-11 23:52:18
回答 1查看 280关注 0票数 0

我们需要根据是否配置了redis主机来启用/禁用缓存。我添加了以下3个bean配置。这是禁用的正确方式吗?启动后我仍然看到缓存解析器错误--“没有指定CacheResolver,也找不到CacheManager类型的bean。注册一个CacheManager bean或者从你的配置中删除@EnableCaching注解”

代码语言:javascript
复制
    @Bean(destroyMethod="shutdown")
    @ConditionalOnProperty(prefix = "spring", name = "redis.host")
    public RedissonClient redisson() {
        Config config = new Config();
        config.useSingleServer()
                .setAddress("redis://127.0.0.1:6379");
        return Redisson.create(config);
    }

    @ConditionalOnBean(RedissonClient.class)
    @Bean
    public RedissonSpringCacheManager cacheManager(RedissonClient redissonClient) {
        Map<String, CacheConfig> config = new HashMap<>();
        // create "testMap" spring cache with ttl = 24 minutes and maxIdleTime = 12 minutes
        config.put("testMap", new CacheConfig(60*60*1000, 12*60*1000));
        return new RedissonSpringCacheManager(redissonClient, config);
    }

    @Bean
    @ConditionalOnBean(RedissonSpringCacheManager.class)
    @Primary
    public CompositeCacheManager compositeCacheManager(RedissonSpringCacheManager cacheManager) {
        logger.info("composite cache-manager init...");
        CompositeCacheManager compositeCacheManager = new CompositeCacheManager(cacheManager);
        compositeCacheManager.setFallbackToNoOpCache(true);
        return compositeCacheManager;
    }

谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

发布于 2020-07-17 12:38:42

您已经使用@EnableCaching注释启用了缓存,该注释将始终查找相关的Cache Manager Beans。工作区正在删除@EnableCaching并实现您自己的CachingConfigurer,并将此bean标记为条件或基于配置文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60639900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档