`ExampleConsumer` auf Basis von `@KafkaListener` über Generics typisiert
authorKai Moritz <kai@juplo.de>
Sat, 1 Mar 2025 21:02:24 +0000 (22:02 +0100)
committerKai Moritz <kai@juplo.de>
Sat, 15 Mar 2025 18:35:16 +0000 (19:35 +0100)
src/main/java/de/juplo/kafka/ExampleConsumer.java

index 5894a10..6618004 100644 (file)
@@ -12,7 +12,7 @@ import org.springframework.stereotype.Component;
 
 @Slf4j
 @Component
-public class ExampleConsumer
+public class ExampleConsumer<K, V>
 {
   @Value("${spring.kafka.client-id}")
   private String id;
@@ -27,9 +27,9 @@ public class ExampleConsumer
     @Header(KafkaHeaders.OFFSET)
     Long offset,
     @Header(KafkaHeaders.RECEIVED_KEY)
-    String key,
+    K key,
     @Payload
-    String value)
+    V value)
   {
     handleRecord(topic, partition, offset, key, value);
   }
@@ -38,8 +38,8 @@ public class ExampleConsumer
     String topic,
     Integer partition,
     Long offset,
-    String key,
-    String value)
+    K key,
+    V value)
   {
     consumed++;
     log.info("{} - partition={}-{}, offset={}: {}={}", id, topic, partition, offset, key, value);