Spring-Version des Endless-Stream-Producer's
[demos/kafka/training] / src / main / java / de / juplo / kafka / Application.java
1 package de.juplo.kafka;
2
3 import org.springframework.beans.factory.annotation.Value;
4 import org.springframework.boot.SpringApplication;
5 import org.springframework.boot.autoconfigure.SpringBootApplication;
6 import org.springframework.boot.context.properties.EnableConfigurationProperties;
7 import org.springframework.context.annotation.Bean;
8 import org.springframework.kafka.core.KafkaTemplate;
9 import org.springframework.util.Assert;
10
11 import java.util.concurrent.Executors;
12
13
14 @SpringBootApplication
15 @EnableConfigurationProperties(ApplicationProperties.class)
16 public class Application
17 {
18   @Bean
19   public EndlessProducer producer(
20       ApplicationProperties properties,
21       @Value("${spring.kafka.client-id:DEV}") String clientId,
22       KafkaTemplate<String, String> kafkaTemplate)
23   {
24
25     EndlessProducer producer =
26         new EndlessProducer(
27             Executors.newFixedThreadPool(1),
28             clientId,
29             properties.getThrottleMs(),
30             kafkaTemplate);
31
32     producer.start();
33
34     return producer;
35   }
36
37   public static void main(String[] args)
38   {
39     SpringApplication.run(Application.class, args);
40   }
41 }