如何在春天将对象序列化为json ad hoc

时间:2018-01-29 13:53:44

标签: json spring-boot apache-kafka

我创建了一个Spring启动应用程序,它将消息发送到Kafka队列(使用spring integration kafka支持)。我想发送任意json序列化的对象。

有没有办法在我的Spring启动应用程序中获取/注入json-de- / serializer? 或者如何临时取消/序列化对象?

应用序列化的好方法是什么?

1 个答案:

答案 0 :(得分:2)

Apache Kafka在其主题中存储和传输字节数组。它附带了许多内置(de)序列化程序,但不包括JSON序列化程序。幸运的是,Spring Kafka框架包含一个支持包,其中包含一个JSON(de)序列化器,它使用了一个Jackson ObjectMapper。  您可以添加像这样的配置文件

@Configuration
public class KafkaConfiguration {
    @Bean
    public ConsumerFactory<String, Operation> consumerFactory(KafkaProperties kafkaProperties) {
        return new DefaultKafkaConsumerFactory<>(kafkaProperties.buildConsumerProperties(), new StringDeserializer(), new JsonDeserializer<>(Operation.class));
    }

    @Bean
    public ConcurrentKafkaListenerContainerFactory<String, Operation> kafkaListenerContainerFactory(ConsumerFactory<String, Operation> consumerFactory) {
        ConcurrentKafkaListenerContainerFactory<String, Operation> factory = new ConcurrentKafkaListenerContainerFactory<>();
        factory.setConsumerFactory(consumerFactory);

        return factory;
    }
}

Operation替换为您要反序列化的类。