springboot(16)修改RedisTemplate序列化工具

使用其他序列化替代jdk序列化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@Configuration
public class RedisConfig {

@Autowired
private RedisConnectionFactory connectionFactory;

@Primary
@Bean
public RedisTemplate<String,?> redisTemplate(RedisConnectionFactory connectionFactory) {
// 使用其他序列化替代jdk序列化
RedisSerializer<Object> redisSerializer = getRedisSerializer();
RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
template.setConnectionFactory(connectionFactory);
template.setKeySerializer(redisSerializer);
template.setValueSerializer(redisSerializer);
template.setHashKeySerializer(redisSerializer);
template.setHashValueSerializer(redisSerializer);
template.afterPropertiesSet();
return template;
}

private RedisSerializer<Object> getRedisSerializer(){
// jackson序列化
// Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(Object.class);
// ObjectMapper om = new ObjectMapper();
// om.setVisibility(PropertyAccessor.ALL, Visibility.ANY);
// om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
// jackson2JsonRedisSerializer.setObjectMapper(om);
// fastjson序列化
return new GenericFastJsonRedisSerializer();
}
}