# 学习Spring Kafka 官方例子时遇到的问题
https://github.com/spring-projects/spring-kafka/tree/main/samples
我注意到sample-01 中,发送的类是Foo1
而消费的类是Foo2
觉得很神奇,猜想完成类型转换的过程一定是某种模糊的、方法反射型的方式完成的。于是继续学习sample-02
当我尝试将sample-02当中的序列化/反序列化修改为类似sample-01的方式,我发现并不能正确的将Foo1的内容消费
经过一番看文档,了解到@KafkaListener用在方法上时,框架做类型转换时会优先参考方法定义(也就是参数的类型)。这解释了sample-01为什么可以做到类不同也能反序列化
sample-02采用的是类级别的@KafkaListener,所以@KafkaHandler会按照类型进行匹配。由于默认会把JSON消息反序列化为Map,所以消费落在了@KafkaHandler(isDefault = true)上