所以我无法仅使用 yaml 为 JsonSerializer 配置 JavaType 方法。还不确定原因,但与此同时,我如何以编程方式设置它?
我在文档中看到了它的代码,但是该代码到底需要在哪里运行?
Spring Kafka:JsonDeserializer 未获取 TRUSTED_PACKAGE 配置 https://stackoverflow.com/questions/60582666/spring-kafka-jsondeserializer-doesnt-pick-up-trusted-package-config
这是我到目前为止所尝试的。卡夫卡字符串反序列化器返回类型静态方法从未被调用 https://stackoverflow.com/questions/63263947/kafka-spring-deserialzer-returntype-static-method-never-called
PS 我使用的是 Spring Boot 2.1.8,因此现在无法轻松使用仅包含属性的新方法。
要使用旧的 Boot 版本获得此功能,您需要从 2.5 复制代码JsonDeserializer
进入自定义解串器 -typeFunction
2.5 中添加的。
以编程方式创建反序列化器时,必须将其直接添加到消费者工厂中。看文档 https://docs.spring.io/spring-kafka/docs/2.5.4.RELEASE/reference/html/#serdes.
对于更复杂或特定的情况,KafkaConsumer(以及 KafkaProducer)提供重载构造函数来分别接受键和值的序列化器和反序列化器实例。
当您使用此 API 时,DefaultKafkaProducerFactory 和 DefaultKafkaConsumerFactory 还提供属性(通过构造函数或 setter 方法)将自定义序列化器和反序列化器实例注入目标生产者或消费者。此外,您可以通过构造函数传入Supplier或Supplier实例 - 这些Supplier在创建每个Producer或Consumer时被调用。
创建一个DefaultKafkaConsumerFactory
@Bean
(覆盖启动的默认值)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)