java - Spring Boot 将 ObjectMapper 注入(inject) Kafka JsonDeserializer

标签 java spring spring-boot apache-kafka spring-kafka

我想将 Jackson 的 ObjectMapper 注入(inject)到 Kafka ConsumerFactory 的 JsonDeserializer 中。我已经完成了这篇文章中提到的事情:

Inject ObjectMapper into Spring Kafka serialiser/deserialiser

但是,当我在不同主题上有多个 @KafkaListener 时,ConcurrentKafkaListenerContainerFactory 使用属性映射来构造 ConcurrentMessageListenerContainer 的多个实例进行初始化ConsumerFactory,而不是传递给 ConcurrentKafkaListenerContainerFactory.setConsumerFactory() 的实例。只有第一个 ConcurrentMessageListenerContainer 使用正确的 ConsumerFactory

如何解决此问题并正确配置 Kafka?

最佳答案

您需要为每个监听器使用不同的消费者/容器工厂。然后使用@KafkaListener上的containerFactory属性来指定要使用的工厂。

关于java - Spring Boot 将 ObjectMapper 注入(inject) Kafka JsonDeserializer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55013421/

相关文章:

java - 保存从 Spring Cloud Config Server 下载的属性

Spring Data JPA 命名策略——使用驼峰命名法

spring - 如何使用Spring boot向Prometheus中的目标添加标签?

java - Springboot Websocket Stomp

java - 让我的 Spring 测试切片扫描单个类而不是整个包

java - 仅从时间戳中获取日期

java - 根据屏幕大小更改字体大小

java - 检查 2D LinkedHashSet 是否包含特定字符串

java - Spring Boot 2 和 Maven 中未找到 Springloaded

java - springboot + hibernate + javaFX