streams - Übungen - Microservices - Schritt 01
[demos/microservices] / take-order / src / main / java / de / trion / microservices / takeorder / Application.java
1 package de.trion.microservices.takeorder;
2
3
4 import de.trion.microservices.avro.Order;
5 import io.confluent.kafka.streams.serdes.avro.SpecificAvroSerializer;
6 import java.util.Properties;
7 import java.util.UUID;
8 import org.apache.kafka.clients.producer.KafkaProducer;
9 import org.apache.kafka.common.serialization.UUIDSerializer;
10 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory;
12 import org.springframework.boot.SpringApplication;
13 import org.springframework.boot.autoconfigure.SpringBootApplication;
14 import org.springframework.boot.context.properties.EnableConfigurationProperties;
15 import org.springframework.context.annotation.Bean;
16
17
18 @SpringBootApplication
19 @EnableConfigurationProperties(ApplicationProperties.class)
20 public class Application
21 {
22   private final static Logger LOG = LoggerFactory.getLogger(Application.class);
23
24
25   @Bean(destroyMethod = "close")
26   KafkaProducer<UUID,Order> producer(ApplicationProperties properties)
27   {
28     Properties props = new Properties();
29     props.put("bootstrap.servers", properties.bootstrapServers);
30     props.put("schema.registry.url", properties.schemaRegistryUrl);
31     props.put("key.serializer", UUIDSerializer.class.getName());
32     props.put("value.serializer", SpecificAvroSerializer.class.getName());
33
34     return new KafkaProducer<>(props);
35   }
36
37   public static void main(String[] args)
38   {
39     SpringApplication.run(Application.class, args);
40   }
41 }