如何在 Spring Kafka producer/consumer 中自定义 Json(De)Serializer? (自我回应)
How to customize Json(De)Serializer in Spring Kafka producer/consumer? (self response)
正如 Spring 文档所建议的 here,您可以使用 ObjectMapper
自定义 Kafka 中 Json(De)Serializer 的行为,但它没有指定如何。
原来 Json(De)Serializer
有一个构造函数,它接受一个 ObjectMapper
作为 arg,所以你可以像这样注入 bean:
@Bean
Deserializer jsonDeserializer(ObjectMapper objectMapper) {
return new JsonDeserializer(objectMapper);
}
如所述here。
另外,如果您需要添加可信包,您需要:
- 从上下文中选择一个
ObjectMapper
,将其传递给 json 序列化程序的 bean
- 在
@Bean
方法中,添加可信包
- 将这个 bean 传递给工厂以获得最终消费者
而上面的link也提到了如果你使用上下文属性获取Json(De)Serializer
,它是由Kafka生成的,不知道任何上下文。
正如 Spring 文档所建议的 here,您可以使用 ObjectMapper
自定义 Kafka 中 Json(De)Serializer 的行为,但它没有指定如何。
原来 Json(De)Serializer
有一个构造函数,它接受一个 ObjectMapper
作为 arg,所以你可以像这样注入 bean:
@Bean
Deserializer jsonDeserializer(ObjectMapper objectMapper) {
return new JsonDeserializer(objectMapper);
}
如所述here。
另外,如果您需要添加可信包,您需要:
- 从上下文中选择一个
ObjectMapper
,将其传递给 json 序列化程序的 bean - 在
@Bean
方法中,添加可信包 - 将这个 bean 传递给工厂以获得最终消费者
而上面的link也提到了如果你使用上下文属性获取Json(De)Serializer
,它是由Kafka生成的,不知道任何上下文。