`@KafkaListener`-Version des `spring-consumer` mit Business-Logik
[demos/kafka/training] / src / main / java / de / juplo / kafka / MessageHandler.java
1 package de.juplo.kafka;
2
3 import lombok.extern.slf4j.Slf4j;
4 import org.springframework.beans.factory.annotation.Autowired;
5 import org.springframework.beans.factory.annotation.Value;
6 import org.springframework.stereotype.Component;
7
8
9 @Slf4j
10 @Component
11 public class MessageHandler
12 {
13   @Value("${spring.kafka.client-id}")
14   private String id;
15   @Autowired
16   private AdderBusinessLogic adder;
17
18
19   public void addNumber(
20       String user,
21       MessageAddNumber message)
22   {
23     adder.addToSum(user, message.getNext());
24   }
25
26   public void calculateSum(
27       String user,
28       MessageCalculateSum message)
29   {
30     AdderResult result = adder.calculate(user);
31     log.info("{} - New result for {}: {}", id, user, result);
32   }
33
34   public void handle(String user, Message message)
35   {
36     switch(message.getType())
37     {
38       case ADD:
39         addNumber(user, (MessageAddNumber) message);
40         break;
41
42       case CALC:
43         calculateSum(user, (MessageCalculateSum) message);
44         break;
45     }
46   }
47 }