1、最近在学习spring boot+redis有关的问题,但是在学习的时候莫名的遇到了一个问题:Cannot resolve constructor 'RedisCacheManager(org.springframework.data.redis.core.RedisTemplate)。这就很难受了问题如下图所示:
2、经过我这半天的功夫百度,谷歌的搜索,我发现我的spring boot的版本是2x以上的版本,搜索的时候发现 在springboot2.x中,RedisCacheManager已经没有了单参数的构造方法。我上边的方法是适用于spring 1x版本的。
3、最终我找到了两位博主的帖子:https://blog.csdn.net/Mirt_/article/details/80934312,https://blog.csdn.net/u013317158/article/details/81285564发现了问题的所在:
最终代码为第一种直接进行构造的方法:
// 管理缓存
@Bean
public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
.entryTtl( Duration.ofHours(1)); // 设置缓存有效期一小时
return RedisCacheManager
.builder( RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory))
.cacheDefaults(redisCacheConfiguration).build();
}
通过这种方法,就可以成功的将缓存的时间设置好了。
4、不会用的可以关注我的github账号中的开源项目:https://github.com/shanhelin/allweb/tree/master/redis
里面有相关redis的详解。