我正在使用 Spring Kafka 1.1.2-RELEASE 和 Spring Boot 1.5.0 RC,我已经配置了一个自定义值序列化器/反序列化器类扩展 org.springframework.kafka.support.serializer.JsonSerializer
/org.springframework.kafka.support.serializer.JsonDeserializer
。这些类确实使用了可以通过构造函数提供的 Jackson ObjectMapper。
是否有可能从我的 Spring 上下文中注入(inject) ObjectMapper?我已经配置了一个 ObjectMapper,我想在序列化器/反序列化器中重用它。
最佳答案
您可以将JsonSerializer
和JsonDeserializer
配置为@Bean
。
向它们注入(inject)所需的 ObjectMapper
。并在 DefaultKafkaProducerFactory
和 DefaultKafkaConsumerFactory
bean 定义中使用这些 bean:
@Bean
public ProducerFactory<Integer, String> producerFactory() {
DefaultKafkaProducerFactory<Integer, String> producerFactory =
new DefaultKafkaProducerFactory<>(producerConfigs());
producerFactory.setValueSerializer(jsonSerializer());
return producerFactory;
}
关于java - 将 ObjectMapper 注入(inject) Spring Kafka 序列化器/反序列化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41833110/