Explorar o código

修改data-redis默认jackson序列化配置

Signed-off-by: luoshi <luoshi@qmth.com.cn>
luoshi %!s(int64=2) %!d(string=hai) anos
pai
achega
31457819f0

+ 3 - 15
data-redis/src/main/java/com/qmth/boot/redis/config/RedisAutoConfiguration.java

@@ -1,11 +1,5 @@
 package com.qmth.boot.redis.config;
 
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.PropertyAccessor;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
-import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
 import org.redisson.Redisson;
 import org.redisson.api.RedissonClient;
 import org.redisson.client.codec.StringCodec;
@@ -29,14 +23,8 @@ public class RedisAutoConfiguration {
     public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
         RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
         redisTemplate.setConnectionFactory(redisConnectionFactory);
-        // 使用 GenericJackson2JsonRedisSerializer 替换默认序列化
-        ObjectMapper mapper = new ObjectMapper();
-        mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
-        mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
-        // 解决jackson2无法反序列化LocalDateTime的问题
-        mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
-        mapper.registerModule(new JavaTimeModule());
-        GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(mapper);
+        GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(
+                JsonJacksonCodec.INSTANCE.getObjectMapper());
         // 设置序列化规则
         redisTemplate.setKeySerializer(RedisSerializer.string());
         redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
@@ -57,7 +45,7 @@ public class RedisAutoConfiguration {
         config.useSingleServer().setAddress(prefix + redisProperties.getHost() + ":" + redisProperties.getPort())
                 .setDatabase(redisProperties.getDb()).setPassword(redisProperties.getPassword())
                 .setTimeout((int) redisProperties.getTimeout().toMillis());
-        config.setCodec(new CompositeCodec(StringCodec.INSTANCE, StringCodec.INSTANCE, JsonJacksonCodec.INSTANCE));
+        config.setCodec(new CompositeCodec(StringCodec.INSTANCE, JsonJacksonCodec.INSTANCE, JsonJacksonCodec.INSTANCE));
         return Redisson.create(config);
     }
 }