【发布时间】:2020-12-15 17:46:04
【问题描述】:
我无法使用 PropertySource 加载 StringDeserializer 和 StringSerializer,但所有其他 spring.kafka 相关的东西都会被加载。
是不是spring PropertySource的bug?
我的常用应用如下所示:
@Configuration
@PropertySource("classpath:/config/kafka.properties")
public class CommonKafkaAutoConfiguration {
}
当文件名 kafka.properties 时没有加载以下配置,但在 application.properties 时没问题
spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
有趣的事实是在这两种情况下都加载了:
spring.kafka.consumer.max-poll-records=20
更新我可以看到它被 kafkaBinderDefaultProperties 覆盖
【问题讨论】:
-
什么版本的引导?我只是用 2.4.1 试过没有问题。此外,默认情况下,Boot auto 会为 key 和 value 配置
String(Des|S)erializer。 -
我试过 spring-boot 2.3.7 和 2.4.1 都有同样的错误。
-
是什么让您认为它不起作用? - 正如我所说,默认情况下它们是
String(Des|S)erializers。 -
因为测试...在运行应用程序和 Spock 测试...我可以看到它在调用 kafka.properties 但没问题 application.properties 时没有加载进一步...我已经缩小它归结为 CommonKafkaAutoConfiguration
-
我更新了我的问题...它加载了字节序列化器
标签: spring spring-boot spring-kafka spring-cloud-stream spring-cloud-stream-binder-kafka