有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

spring如何使用redis序列化Java即时类型

我正在使用SpringBoot2.0.3和 spring启动程序数据redis。 也使用jackson-datatype-jsr310

我想将对象存储到redis中

对象(MyObj):

String text;
Instant instant;

这是我的密码:

@Test
public void test() {

    ListOperations<String, MyObj> listOps = redisTemplate.opsForList();

    MyObj o1 = new MyObj();
    o1.setText("foo");
    o1.setInstant(Instant.now());

    listOps.leftPush("foo", o1);

    MyObj o2 = new MyObj();
    o2.setText("bar");
    o2.setInstant(Instant.now());

    listOps.leftPush("foo", o2);

    List<MyObj> list = listOps.range("foo", 0, -1);

    for (MyObj o : list) {
        System.out.println(o.getText());
        System.out.println(o.getInstant());
    }

}

在我的RedisConfig中:

redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());

但当我进入redis时,错误发生在下面:

org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Cannot construct instance of java.time.Instant (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)

如何用Redis序列化java即时类型

如有任何意见,将不胜感激


共 (0) 个答案