开发者社区> 问答> 正文

SpringCache配置多个cacheManager的问题 :报错

我的项目中有shiro和redis缓存,shiro的缓存是EhCacheManager,redis我配置了RedisCacheManager,这两个cachemanager产生了冲突,我直接在@cacheable指定那cacheManager也不行,有人遇见这个问题吗,有啥解决方案吗

展开
收起
kun坤 2020-06-20 13:37:38 1863 0
1 条回答
写回答
取消 提交回答
  • springboot只支持一个.

    为什么不都配置成redis缓存?

    ######回复 @loyal : 怎么搞######回复 @0o涛涛o0 : 那就有一个不用springboot提供的CacheManager就行了.######shiro这块不是我负责,我在想能不能互相保留,互不影响######

    看了一下源码,大概思路就是这样,没实验。楼主思路有问题,不应该整合多个缓存管理器,应该想办法整合多个Cache区域。

    @Bean
    public CacheManager cacheManager(RedisTemplate<Object, Object> redisTemplate) {
        
        SimpleCacheManager simpleCacheManager = new SimpleCacheManager();
    
        ArrayList<Cache> caches = new ArrayList<>();
        CacheManager manager =CacheManager.create("src/config/ehcache.xml");
        Cache ehcacheNames = manager.getCache("ehcacheNames");
    
        RedisCache redisCache=new RedisCache("redisCache",new DefaultRedisCachePrefix().prefix("redisCache"),redisTemplate,0);
        caches.add(ehcacheNames);
        caches.add(redisCache);
        simpleCacheManager.setCaches(caches);
        return simpleCacheManager;
    }
    ######使用的时候指定name对应的就是不同类型的缓存######

    分别设置不同的CacheName?

    2020-06-20 13:37:45
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载