jackson redis序列化器中启用use_long_for_ints无响应
尽管启用了jackson的use_long_for_ints配置,但整数值仍被反序列化为integer,而不是long。
原因分析
源码显示,反序列化过程调用了untypedobjectdeserializer函数,它未检查use_long_for_ints选项,而是仅检查use_big_integer_for_ints。
解决方案
您可以创建自定义反序列化器,在反序列化时将整数值转换为long:
public class customdeserializer extends jsondeserializer
然后将自定义反序列化器添加到jackson配置中:
@Bean
@SuppressWarnings("all")
public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate template = new RedisTemplate<>();
template.setConnectionFactory(connectionFactory);
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new SimpleModule().addDeserializer(Object.class, new CustomDese
rializer()));
Jackson2JsonRedisSerializer









