首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Apache Kafka-Spring Kafka将泛型反序列化为对象而非LinkedHashMap

Apache Kafka-Spring Kafka将泛型反序列化为对象而非LinkedHashMap

作者头像
小小工匠
发布2021-08-17 16:59:56
发布2021-08-17 16:59:56
1.6K0
举报
文章被收录于专栏:小工匠聊架构小工匠聊架构


Pre

代码语言:javascript
复制
#kafka
spring.kafka.bootstrap-servers=10.11.114.247:9092
spring.kafka.producer.acks=1
spring.kafka.producer.retries=3
spring.kafka.producer.batch-size=16384
spring.kafka.producer.buffer-memory=33554432
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.springframework.kafka.support.serializer.JsonSerializer


spring.kafka.consumer.group-id=zfprocessor_group
spring.kafka.consumer.enable-auto-commit=false
spring.kafka.consumer.auto-offset-reset=earliest
spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.consumer.value-deserializer=org.springframework.kafka.support.serializer.JsonDeserializer
spring.kafka.consumer.properties.spring.json.trusted.packages=com.artisan.common.entity.messages
spring.kafka.consumer.max-poll-records=500
spring.kafka.consumer.fetch-min-size=10
spring.kafka.consumer.fetch-max-wait=10000ms

spring.kafka.listener.missing-topics-fatal=false
spring.kafka.listener.type=batch
spring.kafka.listener.ack-mode=manual


logging.level.org.springframework.kafka=ERROR
logging.level.org.apache.kafka=ERROR

我们看看消费者反序列化,解析value的配置

代码语言:javascript
复制
spring.kafka.consumer.value-deserializer=org.springframework.kafka.support.serializer.JsonDeserializer

Question

spring kafka 使用Jackson序列化, 如果存入kafka中的对象 包含 泛型,那么 默认情况下,这个泛型对象会被Jackson反序列为 LinkedHashMap . 抛出类型转换异常…


Answer

在实体类上增加如下注解

代码语言:javascript
复制
@Data
public class Message<T> {
   
    private int messageCode;

    
    @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS,include = JsonTypeInfo.As.PROPERTY,property = "@class")
    private T messageContent;

}

反序列化后,多了个节点



扩展知识

Jackson JSON - Using @JsonTypeInfo annotation to handle polymorphic types

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/03/31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Pre
  • Question
  • Answer
  • 扩展知识
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档