当前位置: 首页> 科技> 能源 > 招设计师在哪里找_临沂网站建设厂家_百度推广关键词优化_网站域名费一年多少钱

招设计师在哪里找_临沂网站建设厂家_百度推广关键词优化_网站域名费一年多少钱

时间:2025/7/11 23:35:14来源:https://blog.csdn.net/qq_17033579/article/details/145909147 浏览次数:0次
招设计师在哪里找_临沂网站建设厂家_百度推广关键词优化_网站域名费一年多少钱

redis序列化设置

  • redis序列化设置
    • 序列化对象里有org.joda.time.DateTime
      • 1)、报错内容如下
      • 2)、解决方案:分别自定义时间的序列化和反序列化,以对象形式关联到redisTemplate

redis序列化设置

redis序列化设置,通过自定义redisTemplate配置

@Component
public class RedisConfig {@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();redisTemplate.setConnectionFactory(redisConnectionFactory);StringRedisSerializer strRedisSerializer = new StringRedisSerializer();//序列化key值redisTemplate.setKeySerializer(strRedisSerializer);//解决value的序列化方式Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);return redisTemplate;}
}

到这若测试没问题,下面就不用看了

序列化对象里有org.joda.time.DateTime

1)、报错内容如下

org.springframework.data.redis.serializer.SerializationException: Could not write JSON: Joda date/time type org.joda.time.DateTime not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-joda" to enable handling

org.springframework.data.redis.serializer.SerializationException: Could not write JSON: Joda date/time type `org.joda.time.DateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-joda" to enable handling (through reference chain: com.xx.XXModel["BBModel"]->com.xx.XXModel["startDate"]);  
...

2)、解决方案:分别自定义时间的序列化和反序列化,以对象形式关联到redisTemplate

分别自定义一个org.joda.time.DateTime的序列化和发序列化类,然后关联到自定义的redisTemplate,代码如下:
1、DateTimeJsonDeserializer

 public class DateTimeJsonDeserializer extends JsonDeserializer<DateTime> {@Overridepublic DateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JacksonException {String dateString = jsonParser.readValueAs(String.class);DateTimeFormatter formatter= DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");return DateTime.parse(dateString, formatter);}
}

2、DateTimeJsonSerializer

public class DateTimeJsonSerializer extends JsonSerializer<DateTime> {@Overridepublic void serialize(DateTime dateTime, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {jsonGenerator.writeString(dateTime.toString());}
}

3、RedisConfig

@Component
public class RedisConfig {@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();redisTemplate.setConnectionFactory(redisConnectionFactory);StringRedisSerializer strRedisSerializer = new StringRedisSerializer();redisTemplate.setKeySerializer(strRedisSerializer);Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);ObjectMapper objectMapper=new ObjectMapper();SimpleModule simpleModule=new SimpleModule();simpleModule.addSerializer(DateTime.class, new DateTimeJsonSerializer());simpleModule.addDeserializer(DateTime.class, new DateTimeJsonDeserializer());objectMapper.registerModule(simpleModule);jackson2JsonRedisSerializer.setObjectMapper(objectMapper);redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);return redisTemplate;}
}
关键字:招设计师在哪里找_临沂网站建设厂家_百度推广关键词优化_网站域名费一年多少钱

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: