1 package de.trion.kafka.outbox;
3 import org.slf4j.Logger;
4 import org.slf4j.LoggerFactory;
5 import org.springframework.beans.factory.annotation.Autowired;
6 import org.springframework.boot.CommandLineRunner;
7 import org.springframework.boot.SpringApplication;
8 import org.springframework.boot.autoconfigure.SpringBootApplication;
9 import org.springframework.boot.context.properties.EnableConfigurationProperties;
10 import org.springframework.context.annotation.Bean;
11 import org.springframework.jdbc.core.JdbcTemplate;
12 import org.springframework.stereotype.Component;
13 import org.springframework.web.servlet.config.annotation.CorsRegistry;
14 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
16 @SpringBootApplication
17 @EnableConfigurationProperties(ApplicationProperties.class)
19 public class Application implements CommandLineRunner {
21 private final static Logger LOG = LoggerFactory.getLogger(Application.class);
25 ApplicationProperties properties;
27 JdbcTemplate jdbcTemplate;
31 public String bootstrapServers() { return properties.bootstrapServers; }
34 public String topic() {
35 return properties.topic;
39 public String consumerGroup() {
40 return properties.consumerGroup;
44 public WebMvcConfigurer corsConfigurer() {
45 return new WebMvcConfigurer() {
47 public void addCorsMappings(CorsRegistry registry) {
50 .allowedOrigins("http://localhost:4200");
57 public void run(String... strings) throws Exception {
59 LOG.info("Creating tables");
60 jdbcTemplate.execute("DROP TABLE users IF EXISTS");
61 jdbcTemplate.execute("CREATE TABLE users(id SERIAL, username VARCHAR(255), loggedIn BOOLEAN)");
65 public static void main(String[] args) {
66 SpringApplication.run(Application.class, args);