wja*_*ans 6 java spring spring-boot spring-kafka
我正在使用Spring Kafka 1.1.2-RELEASE和Spring Boot 1.5.0 RC,我已经配置了一个自定义值serialiser/deserialiser类extend org.springframework.kafka.support.serializer.JsonSerializer/ org.springframework.kafka.support.serializer.JsonDeserializer.这些类确实使用了Jackson ObjectMapper,它可以通过构造函数提供.
是否有可能从我的Spring上下文中注入ObjectMapper?我已经配置了一个ObjectMapper,我想在serialiser/deserialiser中重用它.
您可以配置JsonSerializer和JsonDeserializer作为@Beans.ObjectMapper向他们注入所需的东西.并在bean DefaultKafkaProducerFactory和DefaultKafkaConsumerFactorybean定义中使用这些bean :
@Bean
public ProducerFactory<Integer, String> producerFactory() {
DefaultKafkaProducerFactory<Integer, String> producerFactory =
new DefaultKafkaProducerFactory<>(producerConfigs());
producerFactory.setValueSerializer(jsonSerializer());
return producerFactory;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
@Component
public class ObjectMapperProducerFactoryCustomizer implements DefaultKafkaProducerFactoryCustomizer {
private final ObjectMapper objectMapper;
public ObjectMapperProducerFactoryCustomizer(ObjectMapper objectMapper) {
this.objectMapper = objectMapper;
}
@Override
public void customize(DefaultKafkaProducerFactory<?, ?> producerFactory) {
if (Objects.nonNull(producerFactory)) {
producerFactory.setValueSerializer(new JsonSerializer<>(objectMapper));
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2037 次 |
| 最近记录: |