Added a consumer, that received messages of multiple types
[demos/kafka/kafkahandler] / src / main / java / de / juplo / kafka / MultiMessageConsumer.java
diff --git a/src/main/java/de/juplo/kafka/MultiMessageConsumer.java b/src/main/java/de/juplo/kafka/MultiMessageConsumer.java
new file mode 100644 (file)
index 0000000..97638bc
--- /dev/null
@@ -0,0 +1,36 @@
+package de.juplo.kafka;
+
+import lombok.Getter;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.kafka.annotation.KafkaHandler;
+import org.springframework.kafka.annotation.KafkaListener;
+import org.springframework.stereotype.Component;
+
+import java.util.LinkedList;
+import java.util.List;
+
+
+@Component
+@KafkaListener(topics = "test")
+@Slf4j
+@Getter
+public class MultiMessageConsumer
+{
+  private final List<Foo> foos = new LinkedList<>();
+  private final List<Bar> bars = new LinkedList<>();
+
+
+  @KafkaHandler
+  public void handleFoo(Foo foo)
+  {
+    log.info("Received a Foo: {}", foo);
+    foos.add(foo);
+  }
+
+  @KafkaHandler
+  public void handleBar(Bar bar)
+  {
+    log.info("Received a Bar: {}", bar);
+    bars.add(bar);
+  }
+}