Redis系列五:序列化配置文件(模板)

 1 package com.atguigu.srb.core.config;
 2 
 3 import com.fasterxml.jackson.databind.ObjectMapper;
 4 import com.fasterxml.jackson.databind.SerializationFeature;
 5 import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
 6 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
 7 import org.springframework.context.annotation.Bean;
 8 import org.springframework.context.annotation.Configuration;
 9 import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
10 import org.springframework.data.redis.core.RedisTemplate;
11 import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
12 import org.springframework.data.redis.serializer.StringRedisSerializer;
13 
14 @Configuration
15 public class RedisConfig {
16 
17     @Bean
18     public RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory redisConnectionFactory) {
19         RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
20         redisTemplate.setConnectionFactory(redisConnectionFactory);
21         //首先解决key的序列化方式
22         StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
23         redisTemplate.setKeySerializer(stringRedisSerializer);
24         //解决value的序列化方式
25         Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
26         //序列化时将类的数据类型存入json,以便反序列化的时候转换成正确的类型
27         ObjectMapper objectMapper = new ObjectMapper();
28         //objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
29         objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
30         // 解决jackson2无法反序列化LocalDateTime的问题
31         objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
32         objectMapper.registerModule(new JavaTimeModule());
33         jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
34         redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
35         return redisTemplate;
36     }
37 
38 }

 

posted @ 2022-01-25 20:40  谁怕?一蓑烟雨任平生  阅读(187)  评论(0)    收藏  举报