我已经在 GitHub 上回答了这个问题。在多个地方问同一个问题是浪费您和我们的时间。正如我在那里所说,Stack Overflow 是提问的首选场所。
这是答案:
请使用 Stack Overflow 提问;GitHub 问题用于报告错误或请求新功能。
您可以在活页夹配置中提供自定义标头映射器。
spring.cloud.stream.kafka.binder.headerMapperBeanName
KafkaHeaderMapper 的 bean 名称,用于将 spring-messaging 标头映射到 Kafka 标头和从 Kafka 标头映射。例如,如果您希望在使用 JSON 反序列化标头的 DefaultKafkaHeaderMapper 中自定义受信任的包,请使用此选项。
默认值:无。
实现您自己的KafkaHeaderMapper
并将其添加为 a@Bean
并配置活页夹以使用它。
编辑
有DefaultKafkaHeaderMapper
一个属性可以将byte[]
标头转换为String
.
/**
* Set the headers to not perform any conversion on (except {@code String} to
* {@code byte[]} for outbound). Inbound headers that match will be mapped as
* {@code byte[]} unless the corresponding boolean in the map value is true,
* in which case it will be mapped as a String.
* @param rawMappedHeaders the header names to not convert and
* @since 2.2.5
* @see #setCharset(Charset)
* @see #setMapAllStringsOut(boolean)
*/
public void setRawMappedHeaders(Map<String, Boolean> rawMappedHeaders) {