There is an easy approach for this. Assume we have topic A and topic B where A needs to use KafkaAvroDeserializer while B needs to use StringDeserializer. Utilize properties of @KafkaListner to set the required values.
@KafkaListener(
topics = "topicA",
properties = {
"key.deserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer",
"value.deserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer"
})
public void consumeTopicA() {}
@KafkaListener(
topics = "topicB",
properties = {
"key.deserializer=org.apache.kafka.common.serialization.StringDeserializer",
"value.deserializer=org.apache.kafka.common.serialization.StringDeserializer"
})
public void consumeTopicB() {}