1 @Configuration
2 public class RedisConfig {
3 @Bean
4 public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
5 RedisTemplate<String, Object> template = new RedisTemplate();
6 template.setConnectionFactory(factory);
7 Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
8 ObjectMapper om = new ObjectMapper();
9 om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
10 om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
11 jackson2JsonRedisSerializer.setObjectMapper(om);
12 StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
13 // key采用String的序列化方式
14 template.setKeySerializer(stringRedisSerializer);
15 // hash的key也采用String的序列化方式
16 template.setHashKeySerializer(stringRedisSerializer);
17 // value序列化方式采用jackson
18 template.setValueSerializer(jackson2JsonRedisSerializer);
19 // hash的value序列化方式采用jackson
20 template.setHashValueSerializer(jackson2JsonRedisSerializer);
21 template.afterPropertiesSet();
22 return template;
23 }
24 }