【发布时间】:2019-06-25 13:19:32
【问题描述】:
我在我的 Spring Boot 应用程序中使用了 @KafkaListener 注释,而没有创建自定义 KafkaListenerContainerFactory bean。我目前正在我的 application.yml 文件中设置 spring.kafka.consumer.value-deserializer 属性来分配我的反序列化器,并且更喜欢以编程方式执行此操作以进行编译时检查。我意识到创建我自己的KafkaListenerContainerFactory 允许我在工厂设置这个属性,但我想避免样板和一些额外的复杂性来获取 SSL 设置。
有没有一种简单的方法可以在不创建我自己的KafkaListenerContainerFactory 的情况下以编程方式设置我的值反序列化器?
【问题讨论】:
-
Is there a simple way to set my value deserializer programmatically without creating my own KafkaListenerContainerFactory是的,你可以这样做,但我真的不明白你的要求,你能解释一下,或者上传你拥有的代码并显示你需要什么改变跨度> -
“以编程方式设置值”是什么意思——比如,你想创建一个反序列化器 bean 吗?就像上面说的死侍一样,你的用例是什么还不太清楚。
-
我相信他想要反序列化器上的类型安全(而不是将类名表示为字符串)。看我的回答。
-
@GaryRussell,是的,我一直在寻找类型安全,这是一个合理的解决方案。我知道这些属性只在 ConsumerFactory 上,但不知道我可以只创建那个 bean。说得通。我喜欢使用
@KafkaListener注释的简单性,并试图避免使用其他样板来设置一个属性。谢谢!
标签: java spring-boot spring-kafka