diff --git a/build.gradle b/build.gradle index fcc4d7f..c6a464d 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,12 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter' - implementation 'org.springframework.kafka:spring-kafka' + implementation 'org.springframework.boot:spring-boot-starter-webflux' + implementation 'io.projectreactor.kafka:reactor-kafka:1.3.11' + + implementation 'io.springfox:springfox-boot-starter:3.0.0' + implementation 'io.springfox:springfox-swagger-ui:3.0.0' + compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' diff --git a/src/main/java/com/github/deogicorgi/reactor/kafka/config/KafkaConfig.java b/src/main/java/com/github/deogicorgi/reactor/kafka/config/KafkaConfig.java new file mode 100644 index 0000000..772f1fa --- /dev/null +++ b/src/main/java/com/github/deogicorgi/reactor/kafka/config/KafkaConfig.java @@ -0,0 +1,10 @@ +package com.github.deogicorgi.reactor.kafka.config; + +import org.springframework.context.annotation.Configuration; + +/** + * Kafka 설정 + */ +@Configuration +public class KafkaConfig { +} diff --git a/src/main/java/com/github/deogicorgi/reactor/kafka/config/SwaggerConfig.java b/src/main/java/com/github/deogicorgi/reactor/kafka/config/SwaggerConfig.java new file mode 100644 index 0000000..3b91bfa --- /dev/null +++ b/src/main/java/com/github/deogicorgi/reactor/kafka/config/SwaggerConfig.java @@ -0,0 +1,35 @@ +package com.github.deogicorgi.reactor.kafka.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; + +/** + * Swaager UI 설정 + */ +@Configuration +public class SwaggerConfig { + @Bean + public Docket api() { + return new Docket(DocumentationType.OAS_30) + .useDefaultResponseMessages(false) + .select() + .apis(RequestHandlerSelectors.basePackage("com.github.deogicorgi.reactor.kafka.web.controller")) + .paths(PathSelectors.any()) + .build() + .apiInfo(apiInfo()); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("Kafka Producer API Swagger") + .description("Kafka Producer API") + .version("1.0") + .build(); + } +} diff --git a/src/main/java/com/github/deogicorgi/reactor/kafka/web/controller/ProducerController.java b/src/main/java/com/github/deogicorgi/reactor/kafka/web/controller/ProducerController.java new file mode 100644 index 0000000..c4c6fdb --- /dev/null +++ b/src/main/java/com/github/deogicorgi/reactor/kafka/web/controller/ProducerController.java @@ -0,0 +1,12 @@ +package com.github.deogicorgi.reactor.kafka.web.controller; + +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RestController; + +/** + * 카프카 프로듀서 Controller + */ +@RestController +@RequiredArgsConstructor +public class ProducerController { +} diff --git a/src/main/java/com/github/deogicorgi/reactor/kafka/web/service/ProduceService.java b/src/main/java/com/github/deogicorgi/reactor/kafka/web/service/ProduceService.java new file mode 100644 index 0000000..432b007 --- /dev/null +++ b/src/main/java/com/github/deogicorgi/reactor/kafka/web/service/ProduceService.java @@ -0,0 +1,9 @@ +package com.github.deogicorgi.reactor.kafka.web.service; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class ProduceService { +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.yml similarity index 100% rename from src/main/resources/application.properties rename to src/main/resources/application.yml