开发者社区 问答 正文

spring boot 配置redis缓存?报错

用spring boot 配置redis缓存时报错如下:
java.lang.IllegalStateException: No CacheResolver specified, and no unique bean of type CacheManager found. Mark one as primary (or give it the name 'cacheManager') or declare a specific CacheManager to use, that serves as the default one.
有哪位大神有遇到类似异常信息的,可否提供解决方案?

展开
收起
爱吃鱼的程序员 2020-06-09 15:03:18 895 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    这个是不是你的配置文件有重复啊没有,根本就没有配置文件http://git.oschina.net/iBase4J/iBase4J回复<aclass='referer'target='_blank'>@lyz宇:使用bean注解是类似的谢谢提供资源,这个是springmvc中的应用,在springboot中这么用比较被动,并且springboot中是没有xml配置文件的需要设置<spanstyle="color:#666666;font-family:'MicrosoftYaHei';font-size:14px;line-height:24px;background-color:#FFFFFF;">CacheManager 

    @Configuration

    @EnableCaching

    publicclassRedisConfigextendsCachingConfigurerSupport{


    <aclass='referer'target='_blank'>@Bean 

      publicRedisTemplate<String,AccessToken>redisTemplate(RedisConnectionFactorycf){ 

        RedisTemplate<String,AccessToken>redisTemplate=newRedisTemplate<String,AccessToken>(); 

        redisTemplate.setConnectionFactory(cf); 

        returnredisTemplate; 

      } 

      

      <aclass='referer'target='_blank'>@Bean 

      publicCacheManagercacheManager(RedisTemplate<?,?>redisTemplate){ 

        RedisCacheManagercacheManager=newRedisCacheManager(redisTemplate); 

        cacheManager.setDefaultExpiration(7200);

        returncacheManager; 

      } 


    <aclass='referer'target='_blank'>@Bean

    publicKeyGeneratoriKeyGenerator(){

    returnnewKeyGenerator(){

    @Override

    publicObjectgenerate(Objecttarget,Methodmethod,Object...params){

    StringBuildersb=newStringBuilder();

    sb.append(target.getClass().getName());

    sb.append(method.getName());

    for(Objectobj:params){

    sb.append(obj.toString());

    }

    returnsb.toString();

    }

    };

    }

    }

    谢谢你的技术提供,这种方式可以使用成功,但不能通用

    2020-06-09 15:03:35
    赞同 展开评论