用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.
有哪位大神有遇到类似异常信息的,可否提供解决方案?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这个是不是你的配置文件有重复啊######没有,根本就没有配置文件######http://git.oschina.net/iBase4J/iBase4J######回复 @lyz宇 : 使用bean注解是类似的######谢谢提供资源,这个是springmvc中的应用,在spring boot中这么用比较被动,并且spring boot中是没有xml配置文件的######需要设置 CacheManager ###### @Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
@Bean
public RedisTemplate<String, AccessToken> redisTemplate(RedisConnectionFactory cf) {
RedisTemplate<String, AccessToken> redisTemplate = new RedisTemplate<String, AccessToken>();
redisTemplate.setConnectionFactory(cf);
return redisTemplate;
}
@Bean
public CacheManager cacheManager(RedisTemplate<?, ?> redisTemplate) {
RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate);
cacheManager.setDefaultExpiration(7200);
return cacheManager;
}
@Bean
public KeyGenerator iKeyGenerator() {
return new KeyGenerator() {
@Override
public Object generate(Object target, Method method, Object... params) {
StringBuilder sb = new StringBuilder();
sb.append(target.getClass().getName());
sb.append(method.getName());
for (Object obj : params) {
sb.append(obj.toString());
}
return sb.toString();
}
};
}
} ######谢谢你的技术提供,这种方式可以使用成功,但不能通用