Cannot resolve constructor 'RedisCacheManager(org.springframework.data.redis.core.RedisTemplate)' 或springboot2.x 的 RedisCacheManager變化
阿新 • • 發佈:2021-08-17
1、最近在學習spring boot+redis有關的問題,但是在學習的時候莫名的遇到了一個問題:Cannot resolve constructor 'RedisCacheManager(org.springframework.data.redis.core.RedisTemplate)。這就很難受了問題如下圖所示:
經過百度,谷歌的搜尋,我發現我的spring boot的版本是2x以上的版本,搜尋的時候發現 在springboot2.x中,RedisCacheManager已經沒有了單引數的構造方法。我上邊的方法是適用於springboot 1.x版本的。
解決方法①: 降低springboot版本 (不推薦,因為一直停留在舊版)
解決方法② 使用2.0以上方法
// 2.0以下寫法 // @SuppressWarnings("rawtypes") // @Bean // public CacheManager cacheManager(RedisTemplate redisTemplate) { // RedisCacheManager rcm = new RedisCacheManager(redisTemplate); // //設定快取過期時間 // //rcm.setDefaultExpiration(60);//秒 // return rcm; // } //2.0以上寫法@Bean public CacheManager cacheManager(RedisConnectionFactory connectionFactory) { RedisCacheManager rm = RedisCacheManager.create(connectionFactory); /*rm.setDefaultExpiration(30L);// 設定快取時間*/ return rm; }
或者
@Bean public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) { RedisCacheConfiguration redisCacheConfiguration= RedisCacheConfiguration.defaultCacheConfig() .entryTtl(Duration.ofHours(1)); // 設定快取有效期一小時 return RedisCacheManager .builder(RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory)) .cacheDefaults(redisCacheConfiguration).build(); }
springboot2.x 的 RedisCacheManager變化
參考這個連結:https://blog.csdn.net/Mirt_/article/details/80934312
早年同窗始相知,三載瞬逝情卻萌。年少不知愁滋味,猶讀紅豆生南國。別離方知相思苦,心田紅豆根以生。