java - 将 ObjectMapper 注入(inject) Spring Kafka 序列化器/反序列化器

标签 java spring spring-boot spring-kafka

我正在使用 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,我想在序列化器/反序列化器中重用它。

最佳答案

您可以将JsonSerializerJsonDeserializer 配置为@Bean。 向它们注入(inject)所需的 ObjectMapper。并在 DefaultKafkaProducerFactoryDefaultKafkaConsumerFactory 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/

相关文章:

java - 参数 2 未注册为输出参数

java - Activity 暂停时实例化的对象会发生什么

java - Spring Reactor : Mono. zip 在空单声道上失败

java - 如何使用 mockmvc 处理 Controller 异常

java - spring JdbcTemplate 是如何识别数据类型的?

java - Vert.x http 客户端在连接空闲后挂起

java - Tomcat 和 STS 上的 Spring Web MVC - 请求的资源不可用

java - Spring boot 2.0.5.RELEASE 应用程序未部署在 JBoss 6.4.0 中

java - 通过 Zuul 上传大文件

java - 当数据库中的postgresql表更新时如何触发java进程