- @Configuration
- @EnableCaching
- public class RedisConfig extends CachingConfigurerSupport {
-     @Bean
-     public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
-         RedisTemplate<String, Object> template = new RedisTemplate<>();
-         RedisSerializer<String> redisSerializer = new StringRedisSerializer();
-         Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
-         ObjectMapper om = new ObjectMapper();
-         om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
-         om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
-         jackson2JsonRedisSerializer.setObjectMapper(om);
-         template.setConnectionFactory(factory);
-         //key序列化方式
-         template.setKeySerializer(redisSerializer);
-         //value序列化
-         template.setValueSerializer(jackson2JsonRedisSerializer);
-         //value hashmap序列化
-         template.setHashValueSerializer(jackson2JsonRedisSerializer);
-         return template;
-     }
-     @Bean
-     public CacheManager cacheManager(RedisConnectionFactory factory) {
-         RedisSerializer<String> redisSerializer = new StringRedisSerializer();
-         Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
-         //解决查询缓存转换异常的问题
-         ObjectMapper om = new ObjectMapper();
-         om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
-         om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
-         jackson2JsonRedisSerializer.setObjectMapper(om);
-         // 配置序列化(解决乱码的问题),过期时间600秒
-         RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
-                 .entryTtl(Duration.ofSeconds(600))
-                 .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer))
-                 .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer))
-                 .disableCachingNullValues();
-         RedisCacheManager cacheManager = RedisCacheManager.builder(factory)
-                 .cacheDefaults(config)
-                 .build();
-         return cacheManager;
-     }
- }