From b706009b268b6c615f9789beba3896703f790250 Mon Sep 17 00:00:00 2001 From: westzeroright <124443419+westzeroright@users.noreply.github.com> Date: Fri, 27 Sep 2024 14:30:57 +0900 Subject: [PATCH 01/11] conf: Update issue templates --- .github/ISSUE_TEMPLATE/custom.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/custom.md diff --git a/.github/ISSUE_TEMPLATE/custom.md b/.github/ISSUE_TEMPLATE/custom.md new file mode 100644 index 00000000..78136f43 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/custom.md @@ -0,0 +1,17 @@ +--- +name: Custom issue template +about: Describe this issue template's purpose here. +title: '' +labels: '' +assignees: '' + +--- + +## Description +- + +## To Do +- [ ] + +## ETC +- From 1229741114da8ca130b34fc3d144a56c36664040 Mon Sep 17 00:00:00 2001 From: SeoYeongU Date: Fri, 27 Sep 2024 14:34:26 +0900 Subject: [PATCH 02/11] =?UTF-8?q?conf:=20PR=20=ED=85=9C=ED=94=8C=EB=A6=BF?= =?UTF-8?q?=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/pull_request_template.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/pull_request_template.md diff --git a/.github/ISSUE_TEMPLATE/pull_request_template.md b/.github/ISSUE_TEMPLATE/pull_request_template.md new file mode 100644 index 00000000..aa7a1c53 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/pull_request_template.md @@ -0,0 +1,6 @@ +## ๐Ÿ“Œ ๊ด€๋ จ ์ด์Šˆ + +## โœจ PR ๋‚ด์šฉ + +## ๐Ÿค“ ๋ฆฌ๋ทฐ์–ด์—๊ฒŒ + From b7bf53fee180a7a1d7c00cdde0651783aa9f583e Mon Sep 17 00:00:00 2001 From: SeoYeongU Date: Fri, 27 Sep 2024 14:35:38 +0900 Subject: [PATCH 03/11] =?UTF-8?q?chore:=20pr=20=ED=85=9C=ED=94=8C=EB=A6=BF?= =?UTF-8?q?=20=EC=9C=84=EC=B9=98=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/{ISSUE_TEMPLATE => }/pull_request_template.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/{ISSUE_TEMPLATE => }/pull_request_template.md (100%) diff --git a/.github/ISSUE_TEMPLATE/pull_request_template.md b/.github/pull_request_template.md similarity index 100% rename from .github/ISSUE_TEMPLATE/pull_request_template.md rename to .github/pull_request_template.md From 2c6750fec186d3307e21ab5cc1a5d8820a2fd98f Mon Sep 17 00:00:00 2001 From: westzeroright Date: Tue, 1 Oct 2024 01:22:46 +0900 Subject: [PATCH 04/11] =?UTF-8?q?feat:=20db=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 4 ++++ src/main/resources/application.properties | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/build.gradle b/build.gradle index c9776e54..f0f0a451 100644 --- a/build.gradle +++ b/build.gradle @@ -26,6 +26,10 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-security' + runtimeOnly 'com.mysql:mysql-connector-j' + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'org.springframework.boot:spring-boot-starter-web' + compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'com.mysql:mysql-connector-j' diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index cda18f84..6a0843a5 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,5 @@ spring.application.name=Whoz-In +spring.jpa.hibernate.ddl-auto=update +spring.datasource.url=jdbc:mysql://localhost:3306/whoz_in?serverTimezone=Asia/Seoul&characterEncoding=UTF-8 +spring.datasource.username=root +spring.datasource.password=dubu1001 From 52677b563d5409f3779d76d054f5070ba79fa001 Mon Sep 17 00:00:00 2001 From: coco3x Date: Fri, 4 Oct 2024 23:10:19 +0900 Subject: [PATCH 05/11] =?UTF-8?q?chore:=20api,=20domain,=20shared=20?= =?UTF-8?q?=EB=AA=A8=EB=93=88=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 44 ++++++++------ modules/api/build.gradle | 29 ++++++++++ .../main/java/api/WhozInApiApplication.java | 8 +-- .../java/api/device/DeviceController.java | 5 ++ .../main/java/api/shared/ApiResponseBody.java | 23 ++++++++ .../api/shared/CommandQueryController.java | 22 +++++++ .../api/shared/GlobalExceptionHandler.java | 20 +++++++ .../api/shared/ResponseEntityGenerator.java | 58 +++++++++++++++++++ modules/domain/build.gradle | 23 ++++++++ .../src/main/java/device/domain/Device.java | 6 ++ .../src/main/java/shared/AggregateRoot.java | 22 +++++++ .../main/java/shared/BusinessException.java | 12 ++++ .../shared/domain/bus/command/Command.java | 13 +++++ .../shared/domain/bus/command/CommandBus.java | 9 +++ .../domain/bus/command/CommandHandler.java | 9 +++ .../shared/domain/bus/event/DomainEvent.java | 17 ++++++ .../shared/domain/bus/event/EventBus.java | 8 +++ .../java/shared/domain/bus/query/Query.java | 5 ++ .../shared/domain/bus/query/QueryBus.java | 5 ++ .../shared/domain/bus/query/QueryHandler.java | 8 +++ .../shared/domain/bus/query/Response.java | 5 ++ .../shared/domain/utils/RequesterInfo.java | 16 +++++ .../bus/event/SpringApplicationEventBus.java | 25 ++++++++ .../utils/StubRequesterInfo.java | 16 +++++ settings.gradle | 7 +++ src/main/resources/application.properties | 5 -- .../whozin/whozin/WhozInApplicationTests.java | 13 ----- 27 files changed, 394 insertions(+), 39 deletions(-) create mode 100644 modules/api/build.gradle rename src/main/java/com/whozin/whozin/WhozInApplication.java => modules/api/src/main/java/api/WhozInApiApplication.java (61%) create mode 100644 modules/api/src/main/java/api/device/DeviceController.java create mode 100644 modules/api/src/main/java/api/shared/ApiResponseBody.java create mode 100644 modules/api/src/main/java/api/shared/CommandQueryController.java create mode 100644 modules/api/src/main/java/api/shared/GlobalExceptionHandler.java create mode 100644 modules/api/src/main/java/api/shared/ResponseEntityGenerator.java create mode 100644 modules/domain/build.gradle create mode 100644 modules/domain/src/main/java/device/domain/Device.java create mode 100644 modules/domain/src/main/java/shared/AggregateRoot.java create mode 100644 modules/domain/src/main/java/shared/BusinessException.java create mode 100644 modules/domain/src/main/java/shared/domain/bus/command/Command.java create mode 100644 modules/domain/src/main/java/shared/domain/bus/command/CommandBus.java create mode 100644 modules/domain/src/main/java/shared/domain/bus/command/CommandHandler.java create mode 100644 modules/domain/src/main/java/shared/domain/bus/event/DomainEvent.java create mode 100644 modules/domain/src/main/java/shared/domain/bus/event/EventBus.java create mode 100644 modules/domain/src/main/java/shared/domain/bus/query/Query.java create mode 100644 modules/domain/src/main/java/shared/domain/bus/query/QueryBus.java create mode 100644 modules/domain/src/main/java/shared/domain/bus/query/QueryHandler.java create mode 100644 modules/domain/src/main/java/shared/domain/bus/query/Response.java create mode 100644 modules/domain/src/main/java/shared/domain/utils/RequesterInfo.java create mode 100644 modules/domain/src/main/java/shared/infrastructure/bus/event/SpringApplicationEventBus.java create mode 100644 modules/domain/src/main/java/shared/infrastructure/utils/StubRequesterInfo.java delete mode 100644 src/main/resources/application.properties delete mode 100644 src/test/java/com/whozin/whozin/WhozInApplicationTests.java diff --git a/build.gradle b/build.gradle index f0f0a451..94fff6d2 100644 --- a/build.gradle +++ b/build.gradle @@ -1,10 +1,8 @@ plugins { id 'java' - id 'org.springframework.boot' version '3.3.4' - id 'io.spring.dependency-management' version '1.1.6' } -group = 'com.whoz-In' +group = 'com.Whoz-In' version = '0.0.1-SNAPSHOT' java { @@ -23,20 +21,32 @@ repositories { mavenCentral() } -dependencies { - implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - implementation 'org.springframework.boot:spring-boot-starter-security' - runtimeOnly 'com.mysql:mysql-connector-j' - implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - implementation 'org.springframework.boot:spring-boot-starter-web' - - compileOnly 'org.projectlombok:lombok' - developmentOnly 'org.springframework.boot:spring-boot-devtools' - runtimeOnly 'com.mysql:mysql-connector-j' - annotationProcessor 'org.projectlombok:lombok' - testImplementation 'org.springframework.boot:spring-boot-starter-test' - testImplementation 'org.springframework.security:spring-security-test' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' +subprojects { // ๋ชจ๋“  ํ•˜์œ„ ๋ชจ๋“ˆ๋“ค์— ์ด ์„ค์ •์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. + group 'com.Whoz-In' + version '0.0.1-SNAPSHOT' + + apply plugin: 'java' + apply plugin: 'java-library' + + configurations { + compileOnly { + extendsFrom annotationProcessor + } + } + + repositories { + mavenCentral() + } + + dependencies { // ๋ชจ๋“  ํ•˜์œ„ ๋ชจ๋“ˆ์— ์ถ”๊ฐ€ ๋  ์˜์กด์„ฑ ๋ชฉ๋ก + implementation 'org.springframework:spring-context:6.1.13' + compileOnly 'org.projectlombok:lombok:1.18.24' + annotationProcessor 'org.projectlombok:lombok:1.18.24' + } + + test { + useJUnitPlatform() + } } tasks.named('test') { diff --git a/modules/api/build.gradle b/modules/api/build.gradle new file mode 100644 index 00000000..9a998767 --- /dev/null +++ b/modules/api/build.gradle @@ -0,0 +1,29 @@ +plugins { + id 'java' + id 'org.springframework.boot' version "3.3.4" + id 'io.spring.dependency-management' version '1.1.5' +} + +group = 'com.Whoz-In' +version = '0.0.1-SNAPSHOT' + +jar.enabled = true + +repositories { + mavenCentral() +} + +dependencies { + implementation project(':modules:domain') + implementation project(':modules:shared') + + implementation 'org.springframework.boot:spring-boot-starter' + implementation 'org.springframework.boot:spring-boot-starter-web' + + testImplementation platform('org.junit:junit-bom:5.9.1') + testImplementation 'org.junit.jupiter:junit-jupiter' +} + +test { + useJUnitPlatform() +} \ No newline at end of file diff --git a/src/main/java/com/whozin/whozin/WhozInApplication.java b/modules/api/src/main/java/api/WhozInApiApplication.java similarity index 61% rename from src/main/java/com/whozin/whozin/WhozInApplication.java rename to modules/api/src/main/java/api/WhozInApiApplication.java index 1264fd1b..9fe3fb31 100644 --- a/src/main/java/com/whozin/whozin/WhozInApplication.java +++ b/modules/api/src/main/java/api/WhozInApiApplication.java @@ -1,13 +1,13 @@ -package com.whozin.whozin; +package api; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication -public class WhozInApplication { +public class WhozInApiApplication { public static void main(String[] args) { - SpringApplication.run(WhozInApplication.class, args); + SpringApplication.run(WhozInApiApplication.class, args); } -} +} \ No newline at end of file diff --git a/modules/api/src/main/java/api/device/DeviceController.java b/modules/api/src/main/java/api/device/DeviceController.java new file mode 100644 index 00000000..23635fc6 --- /dev/null +++ b/modules/api/src/main/java/api/device/DeviceController.java @@ -0,0 +1,5 @@ +package api.device; + + +public class DeviceController { +} diff --git a/modules/api/src/main/java/api/shared/ApiResponseBody.java b/modules/api/src/main/java/api/shared/ApiResponseBody.java new file mode 100644 index 00000000..2bcc0234 --- /dev/null +++ b/modules/api/src/main/java/api/shared/ApiResponseBody.java @@ -0,0 +1,23 @@ +package api.shared; + +import java.io.Serializable; +import lombok.AllArgsConstructor; +import lombok.Getter; + +public class ApiResponseBody { + @Getter + @AllArgsConstructor + public static class FailureBody implements Serializable { + private String status; + private String code; + private String message; + } + + @Getter + @AllArgsConstructor + public static class SuccessBody implements Serializable { + private D data; + private String message; + private String code; + } +} diff --git a/modules/api/src/main/java/api/shared/CommandQueryController.java b/modules/api/src/main/java/api/shared/CommandQueryController.java new file mode 100644 index 00000000..4c552513 --- /dev/null +++ b/modules/api/src/main/java/api/shared/CommandQueryController.java @@ -0,0 +1,22 @@ +package api.shared; + +import shared.domain.bus.command.Command; +import shared.domain.bus.command.CommandBus; +import shared.domain.bus.query.Query; +import shared.domain.bus.query.QueryBus; +import lombok.AccessLevel; +import lombok.RequiredArgsConstructor; + +@RequiredArgsConstructor(access = AccessLevel.PROTECTED) +public abstract class CommandQueryController { + private final CommandBus commandBus; + private final QueryBus queryBus; + + protected void dispatch(Command command){ + commandBus.dispatch(command); + } + + protected R ask(Query query){ + return queryBus.ask(query); + } +} \ No newline at end of file diff --git a/modules/api/src/main/java/api/shared/GlobalExceptionHandler.java b/modules/api/src/main/java/api/shared/GlobalExceptionHandler.java new file mode 100644 index 00000000..9a51af8a --- /dev/null +++ b/modules/api/src/main/java/api/shared/GlobalExceptionHandler.java @@ -0,0 +1,20 @@ +//package com.gyuzal.whozin.shared.infrastructure.presentation; +// +//import com.gyuzal.whozin.shared.shared.BusinessException; +//import com.gyuzal.whozin.shared.infrastructure.presentation.ApiResponseBody.FailureBody; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.http.ResponseEntity; +//import org.springframework.web.bind.annotation.ExceptionHandler; +//import org.springframework.web.bind.annotation.RestControllerAdvice; +// +//@Slf4j +//@RestControllerAdvice +//public class GlobalExceptionHandler { +// +// //์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์—์„œ +// @ExceptionHandler(value = {BusinessException.class}) +// protected ResponseEntity handleConflict(BusinessException e) { +// log.warn("BusinessException", e); +// return ResponseEntityGenerator.fail(e.getMessage(), e.getCode(), e.getHttpStatus()); +// } +//} diff --git a/modules/api/src/main/java/api/shared/ResponseEntityGenerator.java b/modules/api/src/main/java/api/shared/ResponseEntityGenerator.java new file mode 100644 index 00000000..c1c911bd --- /dev/null +++ b/modules/api/src/main/java/api/shared/ResponseEntityGenerator.java @@ -0,0 +1,58 @@ +//package com.gyuzal.whozin.shared.infrastructure.presentation; +// +//import java.util.List; +//import lombok.experimental.UtilityClass; +//import org.springframework.http.HttpStatus; +//import org.springframework.http.ResponseEntity; +//import org.springframework.validation.BindingResult; +//import org.springframework.validation.FieldError; +// +//@UtilityClass +//public class ResponseEntityGenerator { +// +// public static ResponseEntity> success( +// final HttpStatus status) { +// return new ResponseEntity<>( +// new ApiResponseBody.SuccessBody<>(null, , ), status); +// } +// +// public static ResponseEntity> success( +// D data, HttpStatus status, ) { +// return new ResponseEntity<>( +// new ApiResponseBody.SuccessBody<>(data, code.getMessage(), code.getCode()), status); +// } +// +// public static ResponseEntity fail( +// String message, String code, HttpStatus status) { +// return new ResponseEntity<>( +// new ApiResponseBody.FailureBody(String.valueOf(status.value()), code, message), status); +// } +// +// public static ResponseEntity fail( +// BindingResult bindingResult, String code, HttpStatus status) { +// return new ResponseEntity<>( +// new ApiResponseBody.FailureBody( +// String.valueOf(status.value()), code, createErrorMessage(bindingResult)), +// status); +// } +// +// private static String createErrorMessage(BindingResult bindingResult) { +// StringBuilder sb = new StringBuilder(); +// boolean isFirst = true; +// +// List fieldErrors = bindingResult.getFieldErrors(); +// for (FieldError fieldError : fieldErrors) { +// if (!isFirst) { +// sb.append(", "); +// } else { +// isFirst = false; +// } +// sb.append("["); +// sb.append(fieldError.getField()); +// sb.append("] "); +// sb.append(fieldError.getDefaultMessage()); +// } +// +// return sb.toString(); +// } +//} diff --git a/modules/domain/build.gradle b/modules/domain/build.gradle new file mode 100644 index 00000000..22612328 --- /dev/null +++ b/modules/domain/build.gradle @@ -0,0 +1,23 @@ +plugins { + id 'java' +} + +group = 'com.Whoz-In' +version = '0.0.1-SNAPSHOT' + +jar.enabled = true + +repositories { + mavenCentral() +} + +dependencies { + implementation project(':modules:shared') + implementation 'org.springframework:spring-tx:6.1.13' + testImplementation platform('org.junit:junit-bom:5.9.1') + testImplementation 'org.junit.jupiter:junit-jupiter' +} + +test { + useJUnitPlatform() +} \ No newline at end of file diff --git a/modules/domain/src/main/java/device/domain/Device.java b/modules/domain/src/main/java/device/domain/Device.java new file mode 100644 index 00000000..8ed69170 --- /dev/null +++ b/modules/domain/src/main/java/device/domain/Device.java @@ -0,0 +1,6 @@ +package device.domain; + +import shared.AggregateRoot; + +public class Device extends AggregateRoot { +} diff --git a/modules/domain/src/main/java/shared/AggregateRoot.java b/modules/domain/src/main/java/shared/AggregateRoot.java new file mode 100644 index 00000000..fe3d2ddd --- /dev/null +++ b/modules/domain/src/main/java/shared/AggregateRoot.java @@ -0,0 +1,22 @@ +package shared; + +import shared.domain.bus.event.DomainEvent; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +//์• ๊ทธ๋ฆฌ๊ฑฐํŠธ ๋ฃจํŠธ๋Š” ๋ฌด์กฐ๊ฑด ์ƒ์†ํ•ด์•ผ ํ•œ๋‹ค. +public abstract class AggregateRoot { + private List domainEvents = new ArrayList<>(); + + public final List pullDomainEvents() { + List events = domainEvents; + this.domainEvents = Collections.emptyList(); + return events; + } + + //AggregateRoot ๊ตฌํ˜„์ฒด๋งŒ ์ด๋ฒคํŠธ๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ protected + protected final void add(DomainEvent event) { + domainEvents.add(event); + } +} \ No newline at end of file diff --git a/modules/domain/src/main/java/shared/BusinessException.java b/modules/domain/src/main/java/shared/BusinessException.java new file mode 100644 index 00000000..8a41ca6a --- /dev/null +++ b/modules/domain/src/main/java/shared/BusinessException.java @@ -0,0 +1,12 @@ +package shared; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +//๋น„์ฆˆ๋‹ˆ์Šค ๋‚ด์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ์ด๋ฏ€๋กœ HttpStatus๋Š” ๋‹ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +@Getter +@RequiredArgsConstructor +public abstract class BusinessException extends RuntimeException{ + private final String errorCode; + private final String errorMessage; +} diff --git a/modules/domain/src/main/java/shared/domain/bus/command/Command.java b/modules/domain/src/main/java/shared/domain/bus/command/Command.java new file mode 100644 index 00000000..07599804 --- /dev/null +++ b/modules/domain/src/main/java/shared/domain/bus/command/Command.java @@ -0,0 +1,13 @@ +package shared.domain.bus.command; + +/* +userService.login(String userId) + +์ด ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์œ„์™€ ๊ฐ™์ด ๋‹ด๋‹นํ•˜๋Š” ์„œ๋น„์Šค์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ , +์•„๋ž˜์™€ ๊ฐ™์ด CommandBus์—๊ฒŒ ์ปค๋งจ๋“œ๋งŒ์„ ๊ตฌ์„ฑํ•ด์„œ ๋„˜๊ธฐ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค. + +commandBus.dispatch(new LoginCommand(userId)) + */ +public interface Command { + +} diff --git a/modules/domain/src/main/java/shared/domain/bus/command/CommandBus.java b/modules/domain/src/main/java/shared/domain/bus/command/CommandBus.java new file mode 100644 index 00000000..c5623812 --- /dev/null +++ b/modules/domain/src/main/java/shared/domain/bus/command/CommandBus.java @@ -0,0 +1,9 @@ +package shared.domain.bus.command; + +/* +๋ฐ›์€ Command์— ๋”ฐ๋ผ ์ ์ ˆํ•œ CommandHandler์—๊ฒŒ ๋ช…๋ น์„ ์ „๋‹ฌํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค. +์ ์ ˆํ•œ CommandHandler๋ฅผ ์ฐพ๋Š” ๋กœ์ง์€ ์ด ๊ตฌํ˜„์ฒด๊ฐ€ ๋‹ด๋‹นํ•ด์•ผ ํ•œ๋‹ค. + */ +public interface CommandBus { + void dispatch(Command command); +} diff --git a/modules/domain/src/main/java/shared/domain/bus/command/CommandHandler.java b/modules/domain/src/main/java/shared/domain/bus/command/CommandHandler.java new file mode 100644 index 00000000..4b029daf --- /dev/null +++ b/modules/domain/src/main/java/shared/domain/bus/command/CommandHandler.java @@ -0,0 +1,9 @@ +package shared.domain.bus.command; + +/* +ํ—ฅ์‚ฌ๊ณ ๋‚ ์˜ ์ธ๊ณ ์ž‰ ํฌํŠธ(์„œ๋น„์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ)์™€ ๋น„์Šทํ•œ ๊ฐœ๋…์ด๋‹ค. +์ƒˆ๋กœ์šด ์„œ๋น„์Šค์˜ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋งˆ๋‹ค ์ด ํ•ธ๋“ค๋Ÿฌ์™€ ์ ์ ˆํ•œ Command๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค. + */ +public interface CommandHandler{ + void handle(C command); +} diff --git a/modules/domain/src/main/java/shared/domain/bus/event/DomainEvent.java b/modules/domain/src/main/java/shared/domain/bus/event/DomainEvent.java new file mode 100644 index 00000000..720260fc --- /dev/null +++ b/modules/domain/src/main/java/shared/domain/bus/event/DomainEvent.java @@ -0,0 +1,17 @@ +package shared.domain.bus.event; + +import java.time.LocalDateTime; +import lombok.Getter; + +/* +๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋œปํ•œ๋‹ค. +EventBus๋ฅผ + */ +@Getter +public abstract class DomainEvent { + private final LocalDateTime occurredOn; + + protected DomainEvent() { + this.occurredOn = LocalDateTime.now(); + } +} diff --git a/modules/domain/src/main/java/shared/domain/bus/event/EventBus.java b/modules/domain/src/main/java/shared/domain/bus/event/EventBus.java new file mode 100644 index 00000000..45459f10 --- /dev/null +++ b/modules/domain/src/main/java/shared/domain/bus/event/EventBus.java @@ -0,0 +1,8 @@ +package shared.domain.bus.event; + +import java.util.List; + +//DomainEvent +public interface EventBus { + void publish(List events); +} diff --git a/modules/domain/src/main/java/shared/domain/bus/query/Query.java b/modules/domain/src/main/java/shared/domain/bus/query/Query.java new file mode 100644 index 00000000..c0aa494e --- /dev/null +++ b/modules/domain/src/main/java/shared/domain/bus/query/Query.java @@ -0,0 +1,5 @@ +package shared.domain.bus.query; + +public interface Query { + +} diff --git a/modules/domain/src/main/java/shared/domain/bus/query/QueryBus.java b/modules/domain/src/main/java/shared/domain/bus/query/QueryBus.java new file mode 100644 index 00000000..02a3ea70 --- /dev/null +++ b/modules/domain/src/main/java/shared/domain/bus/query/QueryBus.java @@ -0,0 +1,5 @@ +package shared.domain.bus.query; + +public interface QueryBus { + R ask(Query query); +} diff --git a/modules/domain/src/main/java/shared/domain/bus/query/QueryHandler.java b/modules/domain/src/main/java/shared/domain/bus/query/QueryHandler.java new file mode 100644 index 00000000..cfd445bf --- /dev/null +++ b/modules/domain/src/main/java/shared/domain/bus/query/QueryHandler.java @@ -0,0 +1,8 @@ +package shared.domain.bus.query; + +/* +ํ˜•๋ณ€ํ™˜ ์—†์ด ๊ตฌํ˜„์ฒด๋งˆ๋‹ค ๋‹ค๋ฅธ Response๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ œ๋„ค๋ฆญ ์‚ฌ์šฉ + */ +public interface QueryHandler { + R handle(Q query); +} diff --git a/modules/domain/src/main/java/shared/domain/bus/query/Response.java b/modules/domain/src/main/java/shared/domain/bus/query/Response.java new file mode 100644 index 00000000..074c3fa7 --- /dev/null +++ b/modules/domain/src/main/java/shared/domain/bus/query/Response.java @@ -0,0 +1,5 @@ +package shared.domain.bus.query; + +public interface Response { + +} diff --git a/modules/domain/src/main/java/shared/domain/utils/RequesterInfo.java b/modules/domain/src/main/java/shared/domain/utils/RequesterInfo.java new file mode 100644 index 00000000..eea05e4c --- /dev/null +++ b/modules/domain/src/main/java/shared/domain/utils/RequesterInfo.java @@ -0,0 +1,16 @@ +package shared.domain.utils; + +import java.util.Optional; + +/* +์š”์ฒญ์—์„œ ์œ ์ €์˜ ์•„์ด๋””๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ +์ธ์ฆ์ธ๊ฐ€๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์‚ฌ๋žŒ์€ ์Šคํ”„๋ง ๋นˆ์œผ๋กœ ๊ตฌํ˜„์ฒด๋ฅผ ์ œ๊ณตํ•˜์—ฌ์•ผ ํ•œ๋‹ค. + +TODO: ์•„๋ž˜๋ฅผ ๊ณ ๋ฏผํ•ด๋ณด๊ธฐ. +์ด ๊ตฌํ˜„์ฒด๋Š” ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์— ์˜ํ•ด ๊ตฌํ˜„๋  ์ˆ˜๋„ ์žˆ๊ณ  ๊ทธ๋ƒฅ ๋‚ด๊ฐ€ ์ง์ ‘ ๋งŒ๋“  ํ•„ํ„ฐ์ชฝ์—์„œ ๊ตฌํ˜„์„ ํ•  ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ์ด๋‹ค. +์ด๋•Œ, ๋„๋ฉ”์ธ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์€ ์—ฌ๋Ÿฌ ๊ณณ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋Š”๋ฐ ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์„ ๊ณณ์—์„œ๋„ ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์•Œ์•„๋ฒ„๋ฆฐ๋‹ค๋Š”๊ฒŒ ์ฐ์ฐํ•˜๋‹ค. ํ•ด๊ฒฐ๋ฒ•์ด ์žˆ์„๊นŒ? + */ + +public interface RequesterInfo { + Optional findUserId(); +} \ No newline at end of file diff --git a/modules/domain/src/main/java/shared/infrastructure/bus/event/SpringApplicationEventBus.java b/modules/domain/src/main/java/shared/infrastructure/bus/event/SpringApplicationEventBus.java new file mode 100644 index 00000000..b0bf40da --- /dev/null +++ b/modules/domain/src/main/java/shared/infrastructure/bus/event/SpringApplicationEventBus.java @@ -0,0 +1,25 @@ +package shared.infrastructure.bus.event; + + +import java.util.List; +import lombok.RequiredArgsConstructor; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.stereotype.Service; +import shared.domain.bus.event.DomainEvent; +import shared.domain.bus.event.EventBus; + + +/* +๊ธฐ๋ณธ์ ์ธ ์ด๋ฒคํŠธ ํผ๋ธ”๋ฆฌ์…” +์ถ”ํ›„์— ์นดํ”„์นด๋‚˜ ํ† ๋ผMQ๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด ์ƒˆ๋กœ์šด ๊ตฌํ˜„์ฒด๋ฅผ ๋งŒ๋“ค์–ด๋ด…์‹œ๋‹ค. + */ +@Service +@RequiredArgsConstructor +public final class SpringApplicationEventBus implements EventBus { + private final ApplicationEventPublisher publisher; + + @Override + public void publish(List events) { + events.forEach(this.publisher::publishEvent); + } +} diff --git a/modules/domain/src/main/java/shared/infrastructure/utils/StubRequesterInfo.java b/modules/domain/src/main/java/shared/infrastructure/utils/StubRequesterInfo.java new file mode 100644 index 00000000..37d520f6 --- /dev/null +++ b/modules/domain/src/main/java/shared/infrastructure/utils/StubRequesterInfo.java @@ -0,0 +1,16 @@ +package shared.infrastructure.utils; + +import java.util.Optional; +import org.springframework.stereotype.Component; +import shared.domain.utils.RequesterInfo; + +/* +์ธ์ฆ์ธ๊ฐ€ ๊ตฌํ˜„ํ•˜๋Š” ์‚ฌ๋žŒ์ด ๊ตฌํ˜„์ฒด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์ „๊นŒ์ง€ ์‚ฌ์šฉํ•˜๋Š” ์Šคํ… ๊ตฌํ˜„์ฒด + */ +@Component +public class StubRequesterInfo implements RequesterInfo { + @Override + public Optional findUserId() { + return Optional.of(1L); + } +} diff --git a/settings.gradle b/settings.gradle index 364e20e5..84d17953 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1,8 @@ rootProject.name = 'Whoz-In' +include 'modules:domain' +findProject(':modules:domain')?.name = 'domain' +include 'modules:api' +findProject(':modules:api')?.name = 'api' +include 'modules:shared' +findProject(':modules:shared')?.name = 'shared' + diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties deleted file mode 100644 index 6a0843a5..00000000 --- a/src/main/resources/application.properties +++ /dev/null @@ -1,5 +0,0 @@ -spring.application.name=Whoz-In -spring.jpa.hibernate.ddl-auto=update -spring.datasource.url=jdbc:mysql://localhost:3306/whoz_in?serverTimezone=Asia/Seoul&characterEncoding=UTF-8 -spring.datasource.username=root -spring.datasource.password=dubu1001 diff --git a/src/test/java/com/whozin/whozin/WhozInApplicationTests.java b/src/test/java/com/whozin/whozin/WhozInApplicationTests.java deleted file mode 100644 index 9952d395..00000000 --- a/src/test/java/com/whozin/whozin/WhozInApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.whozin.whozin; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class WhozInApplicationTests { - - @Test - void contextLoads() { - } - -} From ec20fdb1097a5176117403b8f586351c960e4844 Mon Sep 17 00:00:00 2001 From: coco3x Date: Fri, 4 Oct 2024 23:17:16 +0900 Subject: [PATCH 06/11] =?UTF-8?q?chore:=20shraed=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/api/build.gradle | 1 - modules/domain/build.gradle | 1 - settings.gradle | 2 -- 3 files changed, 4 deletions(-) diff --git a/modules/api/build.gradle b/modules/api/build.gradle index 9a998767..a5ec47a6 100644 --- a/modules/api/build.gradle +++ b/modules/api/build.gradle @@ -15,7 +15,6 @@ repositories { dependencies { implementation project(':modules:domain') - implementation project(':modules:shared') implementation 'org.springframework.boot:spring-boot-starter' implementation 'org.springframework.boot:spring-boot-starter-web' diff --git a/modules/domain/build.gradle b/modules/domain/build.gradle index 22612328..9df477ae 100644 --- a/modules/domain/build.gradle +++ b/modules/domain/build.gradle @@ -12,7 +12,6 @@ repositories { } dependencies { - implementation project(':modules:shared') implementation 'org.springframework:spring-tx:6.1.13' testImplementation platform('org.junit:junit-bom:5.9.1') testImplementation 'org.junit.jupiter:junit-jupiter' diff --git a/settings.gradle b/settings.gradle index 84d17953..f06e8d68 100644 --- a/settings.gradle +++ b/settings.gradle @@ -3,6 +3,4 @@ include 'modules:domain' findProject(':modules:domain')?.name = 'domain' include 'modules:api' findProject(':modules:api')?.name = 'api' -include 'modules:shared' -findProject(':modules:shared')?.name = 'shared' From 69e9fe6a8f6c91fe04d3b7bf09251a3816e0c89c Mon Sep 17 00:00:00 2001 From: coco3x Date: Sat, 5 Oct 2024 22:49:38 +0900 Subject: [PATCH 07/11] =?UTF-8?q?chore:=20JPA=20=EB=AA=A8=EB=93=88=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 4 ++++ modules/api/build.gradle | 1 + .../main/java/api/WhozInApiApplication.java | 2 +- .../java/api/device/DeviceController.java | 17 +++++++++++++ .../api/shared/CommandQueryController.java | 8 +++---- .../api/src/main/resources/application.yml | 3 +++ modules/domain/build.gradle | 1 + .../src/main/java/device/domain/Device.java | 6 ----- .../device/application/DeviceService.java | 16 +++++++++++++ .../java/domain/device/domain/Device.java | 6 +++++ .../device/domain/DeviceRepository.java | 5 ++++ .../shared/InfrastructureConfiguration.java | 8 +++++++ .../shared/domain}/AggregateRoot.java | 4 ++-- .../shared/domain}/BusinessException.java | 2 +- .../shared/domain/bus/command/Command.java | 2 +- .../shared/domain/bus/command/CommandBus.java | 2 +- .../domain/bus/command/CommandHandler.java | 2 +- .../shared/domain/bus/event/DomainEvent.java | 2 +- .../shared/domain/bus/event/EventBus.java | 2 +- .../domain/shared/domain/bus/query/Query.java | 5 ++++ .../shared/domain/bus/query/QueryBus.java | 2 +- .../shared/domain/bus/query/QueryHandler.java | 2 +- .../shared/domain/bus/query/Response.java | 5 ++++ .../shared/domain/utils/RequesterInfo.java | 2 +- .../bus/event/SpringApplicationEventBus.java | 6 ++--- .../utils/StubRequesterInfo.java | 4 ++-- .../java/shared/domain/bus/query/Query.java | 5 ---- .../shared/domain/bus/query/Response.java | 5 ---- modules/infrastructure/jpa/build.gradle | 24 +++++++++++++++++++ .../src/main/java/jpa/EnvConfiguration.java | 8 +++++++ .../main/java/jpa/device/DeviceEntity.java | 6 +++++ .../java/jpa/device/DeviceJpaAdapter.java | 11 +++++++++ .../java/jpa/device/DeviceJpaRepository.java | 10 ++++++++ .../src/main/resources/application-jpa.yml | 23 ++++++++++++++++++ .../jpa/src/main/resources/env.properties | 3 +++ settings.gradle | 2 ++ 36 files changed, 179 insertions(+), 37 deletions(-) create mode 100644 modules/api/src/main/resources/application.yml delete mode 100644 modules/domain/src/main/java/device/domain/Device.java create mode 100644 modules/domain/src/main/java/domain/device/application/DeviceService.java create mode 100644 modules/domain/src/main/java/domain/device/domain/Device.java create mode 100644 modules/domain/src/main/java/domain/device/domain/DeviceRepository.java create mode 100644 modules/domain/src/main/java/domain/shared/InfrastructureConfiguration.java rename modules/domain/src/main/java/{shared => domain/shared/domain}/AggregateRoot.java (88%) rename modules/domain/src/main/java/{shared => domain/shared/domain}/BusinessException.java (91%) rename modules/domain/src/main/java/{ => domain}/shared/domain/bus/command/Command.java (88%) rename modules/domain/src/main/java/{ => domain}/shared/domain/bus/command/CommandBus.java (85%) rename modules/domain/src/main/java/{ => domain}/shared/domain/bus/command/CommandHandler.java (87%) rename modules/domain/src/main/java/{ => domain}/shared/domain/bus/event/DomainEvent.java (88%) rename modules/domain/src/main/java/{ => domain}/shared/domain/bus/event/EventBus.java (73%) create mode 100644 modules/domain/src/main/java/domain/shared/domain/bus/query/Query.java rename modules/domain/src/main/java/{ => domain}/shared/domain/bus/query/QueryBus.java (59%) rename modules/domain/src/main/java/{ => domain}/shared/domain/bus/query/QueryHandler.java (82%) create mode 100644 modules/domain/src/main/java/domain/shared/domain/bus/query/Response.java rename modules/domain/src/main/java/{ => domain}/shared/domain/utils/RequesterInfo.java (94%) rename modules/domain/src/main/java/{ => domain}/shared/infrastructure/bus/event/SpringApplicationEventBus.java (80%) rename modules/domain/src/main/java/{ => domain}/shared/infrastructure/utils/StubRequesterInfo.java (79%) delete mode 100644 modules/domain/src/main/java/shared/domain/bus/query/Query.java delete mode 100644 modules/domain/src/main/java/shared/domain/bus/query/Response.java create mode 100644 modules/infrastructure/jpa/build.gradle create mode 100644 modules/infrastructure/jpa/src/main/java/jpa/EnvConfiguration.java create mode 100644 modules/infrastructure/jpa/src/main/java/jpa/device/DeviceEntity.java create mode 100644 modules/infrastructure/jpa/src/main/java/jpa/device/DeviceJpaAdapter.java create mode 100644 modules/infrastructure/jpa/src/main/java/jpa/device/DeviceJpaRepository.java create mode 100644 modules/infrastructure/jpa/src/main/resources/application-jpa.yml create mode 100644 modules/infrastructure/jpa/src/main/resources/env.properties diff --git a/build.gradle b/build.gradle index 94fff6d2..05ccc9e2 100644 --- a/build.gradle +++ b/build.gradle @@ -39,9 +39,13 @@ subprojects { // ๋ชจ๋“  ํ•˜์œ„ ๋ชจ๋“ˆ๋“ค์— ์ด ์„ค์ •์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. } dependencies { // ๋ชจ๋“  ํ•˜์œ„ ๋ชจ๋“ˆ์— ์ถ”๊ฐ€ ๋  ์˜์กด์„ฑ ๋ชฉ๋ก + //for Spring DI implementation 'org.springframework:spring-context:6.1.13' + + //lombok compileOnly 'org.projectlombok:lombok:1.18.24' annotationProcessor 'org.projectlombok:lombok:1.18.24' + } test { diff --git a/modules/api/build.gradle b/modules/api/build.gradle index a5ec47a6..29078f8f 100644 --- a/modules/api/build.gradle +++ b/modules/api/build.gradle @@ -15,6 +15,7 @@ repositories { dependencies { implementation project(':modules:domain') + implementation project(":modules:infrastructure:jpa") implementation 'org.springframework.boot:spring-boot-starter' implementation 'org.springframework.boot:spring-boot-starter-web' diff --git a/modules/api/src/main/java/api/WhozInApiApplication.java b/modules/api/src/main/java/api/WhozInApiApplication.java index 9fe3fb31..19a698c9 100644 --- a/modules/api/src/main/java/api/WhozInApiApplication.java +++ b/modules/api/src/main/java/api/WhozInApiApplication.java @@ -3,7 +3,7 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -@SpringBootApplication +@SpringBootApplication(scanBasePackages = {"domain", "jpa"}) public class WhozInApiApplication { public static void main(String[] args) { diff --git a/modules/api/src/main/java/api/device/DeviceController.java b/modules/api/src/main/java/api/device/DeviceController.java index 23635fc6..c2bf52aa 100644 --- a/modules/api/src/main/java/api/device/DeviceController.java +++ b/modules/api/src/main/java/api/device/DeviceController.java @@ -1,5 +1,22 @@ package api.device; +import domain.device.application.DeviceService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api") +@RequiredArgsConstructor public class DeviceController { + private final DeviceService deviceService; + + @PostMapping("/device") + public ResponseEntity test(){ + deviceService.save(); + return ResponseEntity.ok().body("test"); + } } diff --git a/modules/api/src/main/java/api/shared/CommandQueryController.java b/modules/api/src/main/java/api/shared/CommandQueryController.java index 4c552513..938c38ad 100644 --- a/modules/api/src/main/java/api/shared/CommandQueryController.java +++ b/modules/api/src/main/java/api/shared/CommandQueryController.java @@ -1,9 +1,9 @@ package api.shared; -import shared.domain.bus.command.Command; -import shared.domain.bus.command.CommandBus; -import shared.domain.bus.query.Query; -import shared.domain.bus.query.QueryBus; +import domain.shared.domain.bus.command.Command; +import domain.shared.domain.bus.command.CommandBus; +import domain.shared.domain.bus.query.Query; +import domain.shared.domain.bus.query.QueryBus; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; diff --git a/modules/api/src/main/resources/application.yml b/modules/api/src/main/resources/application.yml new file mode 100644 index 00000000..fa55b362 --- /dev/null +++ b/modules/api/src/main/resources/application.yml @@ -0,0 +1,3 @@ +spring: + profiles: + include: jpa \ No newline at end of file diff --git a/modules/domain/build.gradle b/modules/domain/build.gradle index 9df477ae..a67a1308 100644 --- a/modules/domain/build.gradle +++ b/modules/domain/build.gradle @@ -13,6 +13,7 @@ repositories { dependencies { implementation 'org.springframework:spring-tx:6.1.13' + testImplementation platform('org.junit:junit-bom:5.9.1') testImplementation 'org.junit.jupiter:junit-jupiter' } diff --git a/modules/domain/src/main/java/device/domain/Device.java b/modules/domain/src/main/java/device/domain/Device.java deleted file mode 100644 index 8ed69170..00000000 --- a/modules/domain/src/main/java/device/domain/Device.java +++ /dev/null @@ -1,6 +0,0 @@ -package device.domain; - -import shared.AggregateRoot; - -public class Device extends AggregateRoot { -} diff --git a/modules/domain/src/main/java/domain/device/application/DeviceService.java b/modules/domain/src/main/java/domain/device/application/DeviceService.java new file mode 100644 index 00000000..171e520e --- /dev/null +++ b/modules/domain/src/main/java/domain/device/application/DeviceService.java @@ -0,0 +1,16 @@ +package domain.device.application; + +import domain.device.domain.DeviceRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class DeviceService { + private final DeviceRepository deviceRepository; + + public void save(){ + deviceRepository.save(); + } + +} diff --git a/modules/domain/src/main/java/domain/device/domain/Device.java b/modules/domain/src/main/java/domain/device/domain/Device.java new file mode 100644 index 00000000..8f873bf6 --- /dev/null +++ b/modules/domain/src/main/java/domain/device/domain/Device.java @@ -0,0 +1,6 @@ +package domain.device.domain; + +import domain.shared.domain.AggregateRoot; + +public class Device extends AggregateRoot { +} diff --git a/modules/domain/src/main/java/domain/device/domain/DeviceRepository.java b/modules/domain/src/main/java/domain/device/domain/DeviceRepository.java new file mode 100644 index 00000000..ad716372 --- /dev/null +++ b/modules/domain/src/main/java/domain/device/domain/DeviceRepository.java @@ -0,0 +1,5 @@ +package domain.device.domain; + +public interface DeviceRepository { + void save(); +} diff --git a/modules/domain/src/main/java/domain/shared/InfrastructureConfiguration.java b/modules/domain/src/main/java/domain/shared/InfrastructureConfiguration.java new file mode 100644 index 00000000..e8921fbe --- /dev/null +++ b/modules/domain/src/main/java/domain/shared/InfrastructureConfiguration.java @@ -0,0 +1,8 @@ +//package domain.shared; +// +//import org.springframework.context.annotation.ComponentScan; +// +//@ComponentScan(basePackages = "infrastructure_jpa") +//public class InfrastructureConfiguration { +// +//} diff --git a/modules/domain/src/main/java/shared/AggregateRoot.java b/modules/domain/src/main/java/domain/shared/domain/AggregateRoot.java similarity index 88% rename from modules/domain/src/main/java/shared/AggregateRoot.java rename to modules/domain/src/main/java/domain/shared/domain/AggregateRoot.java index fe3d2ddd..c3071267 100644 --- a/modules/domain/src/main/java/shared/AggregateRoot.java +++ b/modules/domain/src/main/java/domain/shared/domain/AggregateRoot.java @@ -1,6 +1,6 @@ -package shared; +package domain.shared.domain; -import shared.domain.bus.event.DomainEvent; +import domain.shared.domain.bus.event.DomainEvent; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/modules/domain/src/main/java/shared/BusinessException.java b/modules/domain/src/main/java/domain/shared/domain/BusinessException.java similarity index 91% rename from modules/domain/src/main/java/shared/BusinessException.java rename to modules/domain/src/main/java/domain/shared/domain/BusinessException.java index 8a41ca6a..933f393c 100644 --- a/modules/domain/src/main/java/shared/BusinessException.java +++ b/modules/domain/src/main/java/domain/shared/domain/BusinessException.java @@ -1,4 +1,4 @@ -package shared; +package domain.shared.domain; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/modules/domain/src/main/java/shared/domain/bus/command/Command.java b/modules/domain/src/main/java/domain/shared/domain/bus/command/Command.java similarity index 88% rename from modules/domain/src/main/java/shared/domain/bus/command/Command.java rename to modules/domain/src/main/java/domain/shared/domain/bus/command/Command.java index 07599804..9bd356c3 100644 --- a/modules/domain/src/main/java/shared/domain/bus/command/Command.java +++ b/modules/domain/src/main/java/domain/shared/domain/bus/command/Command.java @@ -1,4 +1,4 @@ -package shared.domain.bus.command; +package domain.shared.domain.bus.command; /* userService.login(String userId) diff --git a/modules/domain/src/main/java/shared/domain/bus/command/CommandBus.java b/modules/domain/src/main/java/domain/shared/domain/bus/command/CommandBus.java similarity index 85% rename from modules/domain/src/main/java/shared/domain/bus/command/CommandBus.java rename to modules/domain/src/main/java/domain/shared/domain/bus/command/CommandBus.java index c5623812..20bc55cd 100644 --- a/modules/domain/src/main/java/shared/domain/bus/command/CommandBus.java +++ b/modules/domain/src/main/java/domain/shared/domain/bus/command/CommandBus.java @@ -1,4 +1,4 @@ -package shared.domain.bus.command; +package domain.shared.domain.bus.command; /* ๋ฐ›์€ Command์— ๋”ฐ๋ผ ์ ์ ˆํ•œ CommandHandler์—๊ฒŒ ๋ช…๋ น์„ ์ „๋‹ฌํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค. diff --git a/modules/domain/src/main/java/shared/domain/bus/command/CommandHandler.java b/modules/domain/src/main/java/domain/shared/domain/bus/command/CommandHandler.java similarity index 87% rename from modules/domain/src/main/java/shared/domain/bus/command/CommandHandler.java rename to modules/domain/src/main/java/domain/shared/domain/bus/command/CommandHandler.java index 4b029daf..c800867f 100644 --- a/modules/domain/src/main/java/shared/domain/bus/command/CommandHandler.java +++ b/modules/domain/src/main/java/domain/shared/domain/bus/command/CommandHandler.java @@ -1,4 +1,4 @@ -package shared.domain.bus.command; +package domain.shared.domain.bus.command; /* ํ—ฅ์‚ฌ๊ณ ๋‚ ์˜ ์ธ๊ณ ์ž‰ ํฌํŠธ(์„œ๋น„์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ)์™€ ๋น„์Šทํ•œ ๊ฐœ๋…์ด๋‹ค. diff --git a/modules/domain/src/main/java/shared/domain/bus/event/DomainEvent.java b/modules/domain/src/main/java/domain/shared/domain/bus/event/DomainEvent.java similarity index 88% rename from modules/domain/src/main/java/shared/domain/bus/event/DomainEvent.java rename to modules/domain/src/main/java/domain/shared/domain/bus/event/DomainEvent.java index 720260fc..68586bbc 100644 --- a/modules/domain/src/main/java/shared/domain/bus/event/DomainEvent.java +++ b/modules/domain/src/main/java/domain/shared/domain/bus/event/DomainEvent.java @@ -1,4 +1,4 @@ -package shared.domain.bus.event; +package domain.shared.domain.bus.event; import java.time.LocalDateTime; import lombok.Getter; diff --git a/modules/domain/src/main/java/shared/domain/bus/event/EventBus.java b/modules/domain/src/main/java/domain/shared/domain/bus/event/EventBus.java similarity index 73% rename from modules/domain/src/main/java/shared/domain/bus/event/EventBus.java rename to modules/domain/src/main/java/domain/shared/domain/bus/event/EventBus.java index 45459f10..ed9ba809 100644 --- a/modules/domain/src/main/java/shared/domain/bus/event/EventBus.java +++ b/modules/domain/src/main/java/domain/shared/domain/bus/event/EventBus.java @@ -1,4 +1,4 @@ -package shared.domain.bus.event; +package domain.shared.domain.bus.event; import java.util.List; diff --git a/modules/domain/src/main/java/domain/shared/domain/bus/query/Query.java b/modules/domain/src/main/java/domain/shared/domain/bus/query/Query.java new file mode 100644 index 00000000..c901a859 --- /dev/null +++ b/modules/domain/src/main/java/domain/shared/domain/bus/query/Query.java @@ -0,0 +1,5 @@ +package domain.shared.domain.bus.query; + +public interface Query { + +} diff --git a/modules/domain/src/main/java/shared/domain/bus/query/QueryBus.java b/modules/domain/src/main/java/domain/shared/domain/bus/query/QueryBus.java similarity index 59% rename from modules/domain/src/main/java/shared/domain/bus/query/QueryBus.java rename to modules/domain/src/main/java/domain/shared/domain/bus/query/QueryBus.java index 02a3ea70..c1a5acdb 100644 --- a/modules/domain/src/main/java/shared/domain/bus/query/QueryBus.java +++ b/modules/domain/src/main/java/domain/shared/domain/bus/query/QueryBus.java @@ -1,4 +1,4 @@ -package shared.domain.bus.query; +package domain.shared.domain.bus.query; public interface QueryBus { R ask(Query query); diff --git a/modules/domain/src/main/java/shared/domain/bus/query/QueryHandler.java b/modules/domain/src/main/java/domain/shared/domain/bus/query/QueryHandler.java similarity index 82% rename from modules/domain/src/main/java/shared/domain/bus/query/QueryHandler.java rename to modules/domain/src/main/java/domain/shared/domain/bus/query/QueryHandler.java index cfd445bf..4e7eae74 100644 --- a/modules/domain/src/main/java/shared/domain/bus/query/QueryHandler.java +++ b/modules/domain/src/main/java/domain/shared/domain/bus/query/QueryHandler.java @@ -1,4 +1,4 @@ -package shared.domain.bus.query; +package domain.shared.domain.bus.query; /* ํ˜•๋ณ€ํ™˜ ์—†์ด ๊ตฌํ˜„์ฒด๋งˆ๋‹ค ๋‹ค๋ฅธ Response๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ œ๋„ค๋ฆญ ์‚ฌ์šฉ diff --git a/modules/domain/src/main/java/domain/shared/domain/bus/query/Response.java b/modules/domain/src/main/java/domain/shared/domain/bus/query/Response.java new file mode 100644 index 00000000..a04ddaca --- /dev/null +++ b/modules/domain/src/main/java/domain/shared/domain/bus/query/Response.java @@ -0,0 +1,5 @@ +package domain.shared.domain.bus.query; + +public interface Response { + +} diff --git a/modules/domain/src/main/java/shared/domain/utils/RequesterInfo.java b/modules/domain/src/main/java/domain/shared/domain/utils/RequesterInfo.java similarity index 94% rename from modules/domain/src/main/java/shared/domain/utils/RequesterInfo.java rename to modules/domain/src/main/java/domain/shared/domain/utils/RequesterInfo.java index eea05e4c..85756916 100644 --- a/modules/domain/src/main/java/shared/domain/utils/RequesterInfo.java +++ b/modules/domain/src/main/java/domain/shared/domain/utils/RequesterInfo.java @@ -1,4 +1,4 @@ -package shared.domain.utils; +package domain.shared.domain.utils; import java.util.Optional; diff --git a/modules/domain/src/main/java/shared/infrastructure/bus/event/SpringApplicationEventBus.java b/modules/domain/src/main/java/domain/shared/infrastructure/bus/event/SpringApplicationEventBus.java similarity index 80% rename from modules/domain/src/main/java/shared/infrastructure/bus/event/SpringApplicationEventBus.java rename to modules/domain/src/main/java/domain/shared/infrastructure/bus/event/SpringApplicationEventBus.java index b0bf40da..5b9976e8 100644 --- a/modules/domain/src/main/java/shared/infrastructure/bus/event/SpringApplicationEventBus.java +++ b/modules/domain/src/main/java/domain/shared/infrastructure/bus/event/SpringApplicationEventBus.java @@ -1,12 +1,12 @@ -package shared.infrastructure.bus.event; +package domain.shared.infrastructure.bus.event; +import domain.shared.domain.bus.event.DomainEvent; +import domain.shared.domain.bus.event.EventBus; import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.context.ApplicationEventPublisher; import org.springframework.stereotype.Service; -import shared.domain.bus.event.DomainEvent; -import shared.domain.bus.event.EventBus; /* diff --git a/modules/domain/src/main/java/shared/infrastructure/utils/StubRequesterInfo.java b/modules/domain/src/main/java/domain/shared/infrastructure/utils/StubRequesterInfo.java similarity index 79% rename from modules/domain/src/main/java/shared/infrastructure/utils/StubRequesterInfo.java rename to modules/domain/src/main/java/domain/shared/infrastructure/utils/StubRequesterInfo.java index 37d520f6..926bd1cf 100644 --- a/modules/domain/src/main/java/shared/infrastructure/utils/StubRequesterInfo.java +++ b/modules/domain/src/main/java/domain/shared/infrastructure/utils/StubRequesterInfo.java @@ -1,8 +1,8 @@ -package shared.infrastructure.utils; +package domain.shared.infrastructure.utils; import java.util.Optional; import org.springframework.stereotype.Component; -import shared.domain.utils.RequesterInfo; +import domain.shared.domain.utils.RequesterInfo; /* ์ธ์ฆ์ธ๊ฐ€ ๊ตฌํ˜„ํ•˜๋Š” ์‚ฌ๋žŒ์ด ๊ตฌํ˜„์ฒด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์ „๊นŒ์ง€ ์‚ฌ์šฉํ•˜๋Š” ์Šคํ… ๊ตฌํ˜„์ฒด diff --git a/modules/domain/src/main/java/shared/domain/bus/query/Query.java b/modules/domain/src/main/java/shared/domain/bus/query/Query.java deleted file mode 100644 index c0aa494e..00000000 --- a/modules/domain/src/main/java/shared/domain/bus/query/Query.java +++ /dev/null @@ -1,5 +0,0 @@ -package shared.domain.bus.query; - -public interface Query { - -} diff --git a/modules/domain/src/main/java/shared/domain/bus/query/Response.java b/modules/domain/src/main/java/shared/domain/bus/query/Response.java deleted file mode 100644 index 074c3fa7..00000000 --- a/modules/domain/src/main/java/shared/domain/bus/query/Response.java +++ /dev/null @@ -1,5 +0,0 @@ -package shared.domain.bus.query; - -public interface Response { - -} diff --git a/modules/infrastructure/jpa/build.gradle b/modules/infrastructure/jpa/build.gradle new file mode 100644 index 00000000..92e0d6dd --- /dev/null +++ b/modules/infrastructure/jpa/build.gradle @@ -0,0 +1,24 @@ +plugins { + id 'java' +} + +group = 'com.Whoz-In' +version = '0.0.1-SNAPSHOT' + +repositories { + mavenCentral() +} + +dependencies { + implementation project(':modules:domain') + + implementation 'org.springframework.boot:spring-boot-starter-data-jpa:3.3.4' + runtimeOnly 'com.mysql:mysql-connector-j:8.3.0' + + testImplementation platform('org.junit:junit-bom:5.9.1') + testImplementation 'org.junit.jupiter:junit-jupiter' +} + +test { + useJUnitPlatform() +} \ No newline at end of file diff --git a/modules/infrastructure/jpa/src/main/java/jpa/EnvConfiguration.java b/modules/infrastructure/jpa/src/main/java/jpa/EnvConfiguration.java new file mode 100644 index 00000000..48821c57 --- /dev/null +++ b/modules/infrastructure/jpa/src/main/java/jpa/EnvConfiguration.java @@ -0,0 +1,8 @@ +package jpa; + +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; + +@Configuration +@PropertySource("classpath:/env.properties") +public class EnvConfiguration{} diff --git a/modules/infrastructure/jpa/src/main/java/jpa/device/DeviceEntity.java b/modules/infrastructure/jpa/src/main/java/jpa/device/DeviceEntity.java new file mode 100644 index 00000000..030191ba --- /dev/null +++ b/modules/infrastructure/jpa/src/main/java/jpa/device/DeviceEntity.java @@ -0,0 +1,6 @@ +package jpa.device; + +//@Entity +public class DeviceEntity { + +} diff --git a/modules/infrastructure/jpa/src/main/java/jpa/device/DeviceJpaAdapter.java b/modules/infrastructure/jpa/src/main/java/jpa/device/DeviceJpaAdapter.java new file mode 100644 index 00000000..9192e54a --- /dev/null +++ b/modules/infrastructure/jpa/src/main/java/jpa/device/DeviceJpaAdapter.java @@ -0,0 +1,11 @@ +package jpa.device; + +import domain.device.domain.DeviceRepository; + +public class DeviceJpaAdapter implements DeviceRepository { + + @Override + public void save() { + + } +} diff --git a/modules/infrastructure/jpa/src/main/java/jpa/device/DeviceJpaRepository.java b/modules/infrastructure/jpa/src/main/java/jpa/device/DeviceJpaRepository.java new file mode 100644 index 00000000..9de3baf9 --- /dev/null +++ b/modules/infrastructure/jpa/src/main/java/jpa/device/DeviceJpaRepository.java @@ -0,0 +1,10 @@ +package jpa.device; + + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface DeviceJpaRepository extends JpaRepository { + +} \ No newline at end of file diff --git a/modules/infrastructure/jpa/src/main/resources/application-jpa.yml b/modules/infrastructure/jpa/src/main/resources/application-jpa.yml new file mode 100644 index 00000000..94408944 --- /dev/null +++ b/modules/infrastructure/jpa/src/main/resources/application-jpa.yml @@ -0,0 +1,23 @@ +spring: +# config: +# activate: +# on-profile: local + datasource: + url: ${MYSQL_URL} + username: ${MYSQL_USERNAME} + password: ${MYSQL_PASSWORD} + driver-class-name: com.mysql.cj.jdbc.Driver + jpa: + hibernate: + ddl-auto: create + properties: + hibernate: + format_sql: true + show_sql: true + dialect: org.hibernate.dialect.MySQLDialect + generate-ddl: false + open-in-view: false +logging: + level: + root: info + diff --git a/modules/infrastructure/jpa/src/main/resources/env.properties b/modules/infrastructure/jpa/src/main/resources/env.properties new file mode 100644 index 00000000..0c4add7e --- /dev/null +++ b/modules/infrastructure/jpa/src/main/resources/env.properties @@ -0,0 +1,3 @@ +MYSQL_URL=jdbc:mysql://localhost:3306/whozin?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&useUnicode=true&characterSetResults=utf8mb4 +MYSQL_USERNAME=root +MYSQL_PASSWORD=qwer1234 \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index f06e8d68..c3fae9e6 100644 --- a/settings.gradle +++ b/settings.gradle @@ -3,4 +3,6 @@ include 'modules:domain' findProject(':modules:domain')?.name = 'domain' include 'modules:api' findProject(':modules:api')?.name = 'api' +include 'modules:infrastructure:jpa' +findProject(':modules:infrastructure:jpa')?.name = 'jpa' From 95aaba35b0bcc0cfd197b1ef7ce1e69a88ef285d Mon Sep 17 00:00:00 2001 From: coco3x Date: Sun, 6 Oct 2024 09:41:32 +0900 Subject: [PATCH 08/11] =?UTF-8?q?chore:=20=EA=B3=B5=ED=86=B5=20=ED=8C=A8?= =?UTF-8?q?=ED=82=A4=EC=A7=80=20=EA=B5=AC=EC=A1=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- modules/api/build.gradle | 2 +- .../whoz_in}/api/WhozInApiApplication.java | 4 ++-- .../whoz_in}/api/device/DeviceController.java | 4 ++-- .../whoz_in}/api/shared/ApiResponseBody.java | 2 +- .../api/shared/CommandQueryController.java | 10 +++++----- .../api/shared/GlobalExceptionHandler.java | 0 .../api/shared/ResponseEntityGenerator.java | 0 .../api/src/main/resources/application.yml | 8 +++++++- modules/domain/build.gradle | 3 ++- .../device/application/DeviceService.java | 5 ++--- .../whoz_in/domain/device/domain/Device.java | 6 ++++++ .../device/domain/DeviceRepository.java | 2 +- .../domain/shared/domain/AggregateRoot.java | 4 ++-- .../shared/domain/BusinessException.java | 2 +- .../shared/domain/bus/command/Command.java | 2 +- .../shared/domain/bus/command/CommandBus.java | 2 +- .../domain/bus/command/CommandHandler.java | 8 ++++++++ .../shared/domain/bus/event/DomainEvent.java | 2 +- .../shared/domain/bus/event/EventBus.java | 2 +- .../domain/shared/domain/bus/query/Query.java | 5 +++++ .../shared/domain/bus/query/QueryBus.java | 2 +- .../shared/domain/bus/query/QueryHandler.java | 2 +- .../shared/domain/bus/query/Response.java | 5 +++++ .../shared/domain/utils/RequesterInfo.java | 2 +- .../utils/StubRequesterInfo.java | 4 ++-- .../java/domain/device/domain/Device.java | 6 ------ .../shared/InfrastructureConfiguration.java | 8 -------- .../domain/bus/command/CommandHandler.java | 9 --------- .../domain/shared/domain/bus/query/Query.java | 5 ----- .../shared/domain/bus/query/Response.java | 5 ----- modules/infrastructure/jpa/build.gradle | 2 +- .../whoz_in/infra/jpa/config/EnvConfig.java} | 4 ++-- .../infra}/jpa/device/DeviceEntity.java | 2 +- .../infra/jpa/device/DeviceJpaAdapter.java | 13 +++++++++++++ .../jpa/device/DeviceJpaRepository.java | 5 ++--- .../java/jpa/device/DeviceJpaAdapter.java | 11 ----------- modules/infrastructure/spring/build.gradle | 19 +++++++++++++++++++ .../event/SpringApplicationEventBus.java | 6 +++--- settings.gradle | 4 +++- 40 files changed, 104 insertions(+), 85 deletions(-) rename modules/api/src/main/java/{ => com/whoz_in}/api/WhozInApiApplication.java (76%) rename modules/api/src/main/java/{ => com/whoz_in}/api/device/DeviceController.java (86%) rename modules/api/src/main/java/{ => com/whoz_in}/api/shared/ApiResponseBody.java (94%) rename modules/api/src/main/java/{ => com/whoz_in}/api/shared/CommandQueryController.java (60%) rename modules/api/src/main/java/{ => com/whoz_in}/api/shared/GlobalExceptionHandler.java (100%) rename modules/api/src/main/java/{ => com/whoz_in}/api/shared/ResponseEntityGenerator.java (100%) rename modules/domain/src/main/java/{ => com/whoz_in}/domain/device/application/DeviceService.java (72%) create mode 100644 modules/domain/src/main/java/com/whoz_in/domain/device/domain/Device.java rename modules/domain/src/main/java/{ => com/whoz_in}/domain/device/domain/DeviceRepository.java (57%) rename modules/domain/src/main/java/{ => com/whoz_in}/domain/shared/domain/AggregateRoot.java (85%) rename modules/domain/src/main/java/{ => com/whoz_in}/domain/shared/domain/BusinessException.java (88%) rename modules/domain/src/main/java/{ => com/whoz_in}/domain/shared/domain/bus/command/Command.java (85%) rename modules/domain/src/main/java/{ => com/whoz_in}/domain/shared/domain/bus/command/CommandBus.java (82%) create mode 100644 modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/command/CommandHandler.java rename modules/domain/src/main/java/{ => com/whoz_in}/domain/shared/domain/bus/event/DomainEvent.java (85%) rename modules/domain/src/main/java/{ => com/whoz_in}/domain/shared/domain/bus/event/EventBus.java (68%) create mode 100644 modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/query/Query.java rename modules/domain/src/main/java/{ => com/whoz_in}/domain/shared/domain/bus/query/QueryBus.java (53%) rename modules/domain/src/main/java/{ => com/whoz_in}/domain/shared/domain/bus/query/QueryHandler.java (78%) create mode 100644 modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/query/Response.java rename modules/domain/src/main/java/{ => com/whoz_in}/domain/shared/domain/utils/RequesterInfo.java (93%) rename modules/domain/src/main/java/{ => com/whoz_in}/domain/shared/infrastructure/utils/StubRequesterInfo.java (75%) delete mode 100644 modules/domain/src/main/java/domain/device/domain/Device.java delete mode 100644 modules/domain/src/main/java/domain/shared/InfrastructureConfiguration.java delete mode 100644 modules/domain/src/main/java/domain/shared/domain/bus/command/CommandHandler.java delete mode 100644 modules/domain/src/main/java/domain/shared/domain/bus/query/Query.java delete mode 100644 modules/domain/src/main/java/domain/shared/domain/bus/query/Response.java rename modules/infrastructure/jpa/src/main/java/{jpa/EnvConfiguration.java => com/whoz_in/infra/jpa/config/EnvConfig.java} (74%) rename modules/infrastructure/jpa/src/main/java/{ => com/whoz_in/infra}/jpa/device/DeviceEntity.java (52%) create mode 100644 modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/device/DeviceJpaAdapter.java rename modules/infrastructure/jpa/src/main/java/{ => com/whoz_in/infra}/jpa/device/DeviceJpaRepository.java (64%) delete mode 100644 modules/infrastructure/jpa/src/main/java/jpa/device/DeviceJpaAdapter.java create mode 100644 modules/infrastructure/spring/build.gradle rename modules/{domain/src/main/java/domain/shared/infrastructure/bus => infrastructure/spring/src/main/java/com/whoz_in/infra/spring}/event/SpringApplicationEventBus.java (78%) diff --git a/build.gradle b/build.gradle index 05ccc9e2..638859d7 100644 --- a/build.gradle +++ b/build.gradle @@ -22,7 +22,7 @@ repositories { } subprojects { // ๋ชจ๋“  ํ•˜์œ„ ๋ชจ๋“ˆ๋“ค์— ์ด ์„ค์ •์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. - group 'com.Whoz-In' + group 'com.whoz_in' version '0.0.1-SNAPSHOT' apply plugin: 'java' diff --git a/modules/api/build.gradle b/modules/api/build.gradle index 29078f8f..4654130e 100644 --- a/modules/api/build.gradle +++ b/modules/api/build.gradle @@ -4,7 +4,7 @@ plugins { id 'io.spring.dependency-management' version '1.1.5' } -group = 'com.Whoz-In' +group = 'com.whoz_in' version = '0.0.1-SNAPSHOT' jar.enabled = true diff --git a/modules/api/src/main/java/api/WhozInApiApplication.java b/modules/api/src/main/java/com/whoz_in/api/WhozInApiApplication.java similarity index 76% rename from modules/api/src/main/java/api/WhozInApiApplication.java rename to modules/api/src/main/java/com/whoz_in/api/WhozInApiApplication.java index 19a698c9..07f4ab4c 100644 --- a/modules/api/src/main/java/api/WhozInApiApplication.java +++ b/modules/api/src/main/java/com/whoz_in/api/WhozInApiApplication.java @@ -1,9 +1,9 @@ -package api; +package com.whoz_in.api; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -@SpringBootApplication(scanBasePackages = {"domain", "jpa"}) +@SpringBootApplication(scanBasePackages = {"com.whoz_in"}) public class WhozInApiApplication { public static void main(String[] args) { diff --git a/modules/api/src/main/java/api/device/DeviceController.java b/modules/api/src/main/java/com/whoz_in/api/device/DeviceController.java similarity index 86% rename from modules/api/src/main/java/api/device/DeviceController.java rename to modules/api/src/main/java/com/whoz_in/api/device/DeviceController.java index c2bf52aa..c8c0fd9f 100644 --- a/modules/api/src/main/java/api/device/DeviceController.java +++ b/modules/api/src/main/java/com/whoz_in/api/device/DeviceController.java @@ -1,7 +1,7 @@ -package api.device; +package com.whoz_in.api.device; -import domain.device.application.DeviceService; +import com.whoz_in.domain.device.application.DeviceService; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; diff --git a/modules/api/src/main/java/api/shared/ApiResponseBody.java b/modules/api/src/main/java/com/whoz_in/api/shared/ApiResponseBody.java similarity index 94% rename from modules/api/src/main/java/api/shared/ApiResponseBody.java rename to modules/api/src/main/java/com/whoz_in/api/shared/ApiResponseBody.java index 2bcc0234..25a2a08d 100644 --- a/modules/api/src/main/java/api/shared/ApiResponseBody.java +++ b/modules/api/src/main/java/com/whoz_in/api/shared/ApiResponseBody.java @@ -1,4 +1,4 @@ -package api.shared; +package com.whoz_in.api.shared; import java.io.Serializable; import lombok.AllArgsConstructor; diff --git a/modules/api/src/main/java/api/shared/CommandQueryController.java b/modules/api/src/main/java/com/whoz_in/api/shared/CommandQueryController.java similarity index 60% rename from modules/api/src/main/java/api/shared/CommandQueryController.java rename to modules/api/src/main/java/com/whoz_in/api/shared/CommandQueryController.java index 938c38ad..45041e9b 100644 --- a/modules/api/src/main/java/api/shared/CommandQueryController.java +++ b/modules/api/src/main/java/com/whoz_in/api/shared/CommandQueryController.java @@ -1,9 +1,9 @@ -package api.shared; +package com.whoz_in.api.shared; -import domain.shared.domain.bus.command.Command; -import domain.shared.domain.bus.command.CommandBus; -import domain.shared.domain.bus.query.Query; -import domain.shared.domain.bus.query.QueryBus; +import com.whoz_in.domain.shared.domain.bus.command.Command; +import com.whoz_in.domain.shared.domain.bus.command.CommandBus; +import com.whoz_in.domain.shared.domain.bus.query.Query; +import com.whoz_in.domain.shared.domain.bus.query.QueryBus; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; diff --git a/modules/api/src/main/java/api/shared/GlobalExceptionHandler.java b/modules/api/src/main/java/com/whoz_in/api/shared/GlobalExceptionHandler.java similarity index 100% rename from modules/api/src/main/java/api/shared/GlobalExceptionHandler.java rename to modules/api/src/main/java/com/whoz_in/api/shared/GlobalExceptionHandler.java diff --git a/modules/api/src/main/java/api/shared/ResponseEntityGenerator.java b/modules/api/src/main/java/com/whoz_in/api/shared/ResponseEntityGenerator.java similarity index 100% rename from modules/api/src/main/java/api/shared/ResponseEntityGenerator.java rename to modules/api/src/main/java/com/whoz_in/api/shared/ResponseEntityGenerator.java diff --git a/modules/api/src/main/resources/application.yml b/modules/api/src/main/resources/application.yml index fa55b362..da046977 100644 --- a/modules/api/src/main/resources/application.yml +++ b/modules/api/src/main/resources/application.yml @@ -1,3 +1,9 @@ spring: profiles: - include: jpa \ No newline at end of file + include: jpa + +management: + endpoints: + web: + exposure: + include: "*" \ No newline at end of file diff --git a/modules/domain/build.gradle b/modules/domain/build.gradle index a67a1308..dc68c3cd 100644 --- a/modules/domain/build.gradle +++ b/modules/domain/build.gradle @@ -2,7 +2,7 @@ plugins { id 'java' } -group = 'com.Whoz-In' +group = 'com.whoz_in' version = '0.0.1-SNAPSHOT' jar.enabled = true @@ -12,6 +12,7 @@ repositories { } dependencies { + //ํŠธ๋žœ์žญ์…˜์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•จ implementation 'org.springframework:spring-tx:6.1.13' testImplementation platform('org.junit:junit-bom:5.9.1') diff --git a/modules/domain/src/main/java/domain/device/application/DeviceService.java b/modules/domain/src/main/java/com/whoz_in/domain/device/application/DeviceService.java similarity index 72% rename from modules/domain/src/main/java/domain/device/application/DeviceService.java rename to modules/domain/src/main/java/com/whoz_in/domain/device/application/DeviceService.java index 171e520e..64698482 100644 --- a/modules/domain/src/main/java/domain/device/application/DeviceService.java +++ b/modules/domain/src/main/java/com/whoz_in/domain/device/application/DeviceService.java @@ -1,6 +1,6 @@ -package domain.device.application; +package com.whoz_in.domain.device.application; -import domain.device.domain.DeviceRepository; +import com.whoz_in.domain.device.domain.DeviceRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -12,5 +12,4 @@ public class DeviceService { public void save(){ deviceRepository.save(); } - } diff --git a/modules/domain/src/main/java/com/whoz_in/domain/device/domain/Device.java b/modules/domain/src/main/java/com/whoz_in/domain/device/domain/Device.java new file mode 100644 index 00000000..15578536 --- /dev/null +++ b/modules/domain/src/main/java/com/whoz_in/domain/device/domain/Device.java @@ -0,0 +1,6 @@ +package com.whoz_in.domain.device.domain; + +import com.whoz_in.domain.shared.domain.AggregateRoot; + +public final class Device extends AggregateRoot { +} diff --git a/modules/domain/src/main/java/domain/device/domain/DeviceRepository.java b/modules/domain/src/main/java/com/whoz_in/domain/device/domain/DeviceRepository.java similarity index 57% rename from modules/domain/src/main/java/domain/device/domain/DeviceRepository.java rename to modules/domain/src/main/java/com/whoz_in/domain/device/domain/DeviceRepository.java index ad716372..d28e0a58 100644 --- a/modules/domain/src/main/java/domain/device/domain/DeviceRepository.java +++ b/modules/domain/src/main/java/com/whoz_in/domain/device/domain/DeviceRepository.java @@ -1,4 +1,4 @@ -package domain.device.domain; +package com.whoz_in.domain.device.domain; public interface DeviceRepository { void save(); diff --git a/modules/domain/src/main/java/domain/shared/domain/AggregateRoot.java b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/AggregateRoot.java similarity index 85% rename from modules/domain/src/main/java/domain/shared/domain/AggregateRoot.java rename to modules/domain/src/main/java/com/whoz_in/domain/shared/domain/AggregateRoot.java index c3071267..1fe3528d 100644 --- a/modules/domain/src/main/java/domain/shared/domain/AggregateRoot.java +++ b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/AggregateRoot.java @@ -1,6 +1,6 @@ -package domain.shared.domain; +package com.whoz_in.domain.shared.domain; -import domain.shared.domain.bus.event.DomainEvent; +import com.whoz_in.domain.shared.domain.bus.event.DomainEvent; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/modules/domain/src/main/java/domain/shared/domain/BusinessException.java b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/BusinessException.java similarity index 88% rename from modules/domain/src/main/java/domain/shared/domain/BusinessException.java rename to modules/domain/src/main/java/com/whoz_in/domain/shared/domain/BusinessException.java index 933f393c..2ab5c761 100644 --- a/modules/domain/src/main/java/domain/shared/domain/BusinessException.java +++ b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/BusinessException.java @@ -1,4 +1,4 @@ -package domain.shared.domain; +package com.whoz_in.domain.shared.domain; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/modules/domain/src/main/java/domain/shared/domain/bus/command/Command.java b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/command/Command.java similarity index 85% rename from modules/domain/src/main/java/domain/shared/domain/bus/command/Command.java rename to modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/command/Command.java index 9bd356c3..46b5018b 100644 --- a/modules/domain/src/main/java/domain/shared/domain/bus/command/Command.java +++ b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/command/Command.java @@ -1,4 +1,4 @@ -package domain.shared.domain.bus.command; +package com.whoz_in.domain.shared.domain.bus.command; /* userService.login(String userId) diff --git a/modules/domain/src/main/java/domain/shared/domain/bus/command/CommandBus.java b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/command/CommandBus.java similarity index 82% rename from modules/domain/src/main/java/domain/shared/domain/bus/command/CommandBus.java rename to modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/command/CommandBus.java index 20bc55cd..9c99ff31 100644 --- a/modules/domain/src/main/java/domain/shared/domain/bus/command/CommandBus.java +++ b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/command/CommandBus.java @@ -1,4 +1,4 @@ -package domain.shared.domain.bus.command; +package com.whoz_in.domain.shared.domain.bus.command; /* ๋ฐ›์€ Command์— ๋”ฐ๋ผ ์ ์ ˆํ•œ CommandHandler์—๊ฒŒ ๋ช…๋ น์„ ์ „๋‹ฌํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค. diff --git a/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/command/CommandHandler.java b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/command/CommandHandler.java new file mode 100644 index 00000000..c32713cc --- /dev/null +++ b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/command/CommandHandler.java @@ -0,0 +1,8 @@ +package com.whoz_in.domain.shared.domain.bus.command; + +/* +์šฐ๋ฆฌ์˜ ์ƒˆ๋กœ์šด ์„œ๋น„์Šค์˜ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋งˆ๋‹ค ์ด ํ•ธ๋“ค๋Ÿฌ์™€ ์ ์ ˆํ•œ Command๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค. + */ +public interface CommandHandler{ + void handle(C command); +} diff --git a/modules/domain/src/main/java/domain/shared/domain/bus/event/DomainEvent.java b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/event/DomainEvent.java similarity index 85% rename from modules/domain/src/main/java/domain/shared/domain/bus/event/DomainEvent.java rename to modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/event/DomainEvent.java index 68586bbc..308275c1 100644 --- a/modules/domain/src/main/java/domain/shared/domain/bus/event/DomainEvent.java +++ b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/event/DomainEvent.java @@ -1,4 +1,4 @@ -package domain.shared.domain.bus.event; +package com.whoz_in.domain.shared.domain.bus.event; import java.time.LocalDateTime; import lombok.Getter; diff --git a/modules/domain/src/main/java/domain/shared/domain/bus/event/EventBus.java b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/event/EventBus.java similarity index 68% rename from modules/domain/src/main/java/domain/shared/domain/bus/event/EventBus.java rename to modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/event/EventBus.java index ed9ba809..0c644303 100644 --- a/modules/domain/src/main/java/domain/shared/domain/bus/event/EventBus.java +++ b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/event/EventBus.java @@ -1,4 +1,4 @@ -package domain.shared.domain.bus.event; +package com.whoz_in.domain.shared.domain.bus.event; import java.util.List; diff --git a/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/query/Query.java b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/query/Query.java new file mode 100644 index 00000000..8de1c43f --- /dev/null +++ b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/query/Query.java @@ -0,0 +1,5 @@ +package com.whoz_in.domain.shared.domain.bus.query; + +public interface Query { + +} diff --git a/modules/domain/src/main/java/domain/shared/domain/bus/query/QueryBus.java b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/query/QueryBus.java similarity index 53% rename from modules/domain/src/main/java/domain/shared/domain/bus/query/QueryBus.java rename to modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/query/QueryBus.java index c1a5acdb..ea8a16a3 100644 --- a/modules/domain/src/main/java/domain/shared/domain/bus/query/QueryBus.java +++ b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/query/QueryBus.java @@ -1,4 +1,4 @@ -package domain.shared.domain.bus.query; +package com.whoz_in.domain.shared.domain.bus.query; public interface QueryBus { R ask(Query query); diff --git a/modules/domain/src/main/java/domain/shared/domain/bus/query/QueryHandler.java b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/query/QueryHandler.java similarity index 78% rename from modules/domain/src/main/java/domain/shared/domain/bus/query/QueryHandler.java rename to modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/query/QueryHandler.java index 4e7eae74..7f89bcb1 100644 --- a/modules/domain/src/main/java/domain/shared/domain/bus/query/QueryHandler.java +++ b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/query/QueryHandler.java @@ -1,4 +1,4 @@ -package domain.shared.domain.bus.query; +package com.whoz_in.domain.shared.domain.bus.query; /* ํ˜•๋ณ€ํ™˜ ์—†์ด ๊ตฌํ˜„์ฒด๋งˆ๋‹ค ๋‹ค๋ฅธ Response๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ œ๋„ค๋ฆญ ์‚ฌ์šฉ diff --git a/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/query/Response.java b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/query/Response.java new file mode 100644 index 00000000..cc6b5353 --- /dev/null +++ b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/bus/query/Response.java @@ -0,0 +1,5 @@ +package com.whoz_in.domain.shared.domain.bus.query; + +public interface Response { + +} diff --git a/modules/domain/src/main/java/domain/shared/domain/utils/RequesterInfo.java b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/utils/RequesterInfo.java similarity index 93% rename from modules/domain/src/main/java/domain/shared/domain/utils/RequesterInfo.java rename to modules/domain/src/main/java/com/whoz_in/domain/shared/domain/utils/RequesterInfo.java index 85756916..53b6f656 100644 --- a/modules/domain/src/main/java/domain/shared/domain/utils/RequesterInfo.java +++ b/modules/domain/src/main/java/com/whoz_in/domain/shared/domain/utils/RequesterInfo.java @@ -1,4 +1,4 @@ -package domain.shared.domain.utils; +package com.whoz_in.domain.shared.domain.utils; import java.util.Optional; diff --git a/modules/domain/src/main/java/domain/shared/infrastructure/utils/StubRequesterInfo.java b/modules/domain/src/main/java/com/whoz_in/domain/shared/infrastructure/utils/StubRequesterInfo.java similarity index 75% rename from modules/domain/src/main/java/domain/shared/infrastructure/utils/StubRequesterInfo.java rename to modules/domain/src/main/java/com/whoz_in/domain/shared/infrastructure/utils/StubRequesterInfo.java index 926bd1cf..b37963a9 100644 --- a/modules/domain/src/main/java/domain/shared/infrastructure/utils/StubRequesterInfo.java +++ b/modules/domain/src/main/java/com/whoz_in/domain/shared/infrastructure/utils/StubRequesterInfo.java @@ -1,8 +1,8 @@ -package domain.shared.infrastructure.utils; +package com.whoz_in.domain.shared.infrastructure.utils; import java.util.Optional; import org.springframework.stereotype.Component; -import domain.shared.domain.utils.RequesterInfo; +import com.whoz_in.domain.shared.domain.utils.RequesterInfo; /* ์ธ์ฆ์ธ๊ฐ€ ๊ตฌํ˜„ํ•˜๋Š” ์‚ฌ๋žŒ์ด ๊ตฌํ˜„์ฒด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์ „๊นŒ์ง€ ์‚ฌ์šฉํ•˜๋Š” ์Šคํ… ๊ตฌํ˜„์ฒด diff --git a/modules/domain/src/main/java/domain/device/domain/Device.java b/modules/domain/src/main/java/domain/device/domain/Device.java deleted file mode 100644 index 8f873bf6..00000000 --- a/modules/domain/src/main/java/domain/device/domain/Device.java +++ /dev/null @@ -1,6 +0,0 @@ -package domain.device.domain; - -import domain.shared.domain.AggregateRoot; - -public class Device extends AggregateRoot { -} diff --git a/modules/domain/src/main/java/domain/shared/InfrastructureConfiguration.java b/modules/domain/src/main/java/domain/shared/InfrastructureConfiguration.java deleted file mode 100644 index e8921fbe..00000000 --- a/modules/domain/src/main/java/domain/shared/InfrastructureConfiguration.java +++ /dev/null @@ -1,8 +0,0 @@ -//package domain.shared; -// -//import org.springframework.context.annotation.ComponentScan; -// -//@ComponentScan(basePackages = "infrastructure_jpa") -//public class InfrastructureConfiguration { -// -//} diff --git a/modules/domain/src/main/java/domain/shared/domain/bus/command/CommandHandler.java b/modules/domain/src/main/java/domain/shared/domain/bus/command/CommandHandler.java deleted file mode 100644 index c800867f..00000000 --- a/modules/domain/src/main/java/domain/shared/domain/bus/command/CommandHandler.java +++ /dev/null @@ -1,9 +0,0 @@ -package domain.shared.domain.bus.command; - -/* -ํ—ฅ์‚ฌ๊ณ ๋‚ ์˜ ์ธ๊ณ ์ž‰ ํฌํŠธ(์„œ๋น„์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ)์™€ ๋น„์Šทํ•œ ๊ฐœ๋…์ด๋‹ค. -์ƒˆ๋กœ์šด ์„œ๋น„์Šค์˜ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋งˆ๋‹ค ์ด ํ•ธ๋“ค๋Ÿฌ์™€ ์ ์ ˆํ•œ Command๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค. - */ -public interface CommandHandler{ - void handle(C command); -} diff --git a/modules/domain/src/main/java/domain/shared/domain/bus/query/Query.java b/modules/domain/src/main/java/domain/shared/domain/bus/query/Query.java deleted file mode 100644 index c901a859..00000000 --- a/modules/domain/src/main/java/domain/shared/domain/bus/query/Query.java +++ /dev/null @@ -1,5 +0,0 @@ -package domain.shared.domain.bus.query; - -public interface Query { - -} diff --git a/modules/domain/src/main/java/domain/shared/domain/bus/query/Response.java b/modules/domain/src/main/java/domain/shared/domain/bus/query/Response.java deleted file mode 100644 index a04ddaca..00000000 --- a/modules/domain/src/main/java/domain/shared/domain/bus/query/Response.java +++ /dev/null @@ -1,5 +0,0 @@ -package domain.shared.domain.bus.query; - -public interface Response { - -} diff --git a/modules/infrastructure/jpa/build.gradle b/modules/infrastructure/jpa/build.gradle index 92e0d6dd..e7d690bb 100644 --- a/modules/infrastructure/jpa/build.gradle +++ b/modules/infrastructure/jpa/build.gradle @@ -2,7 +2,7 @@ plugins { id 'java' } -group = 'com.Whoz-In' +group = 'com.whoz_in' version = '0.0.1-SNAPSHOT' repositories { diff --git a/modules/infrastructure/jpa/src/main/java/jpa/EnvConfiguration.java b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/config/EnvConfig.java similarity index 74% rename from modules/infrastructure/jpa/src/main/java/jpa/EnvConfiguration.java rename to modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/config/EnvConfig.java index 48821c57..a22f16be 100644 --- a/modules/infrastructure/jpa/src/main/java/jpa/EnvConfiguration.java +++ b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/config/EnvConfig.java @@ -1,8 +1,8 @@ -package jpa; +package com.whoz_in.infra.jpa.config; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; @Configuration @PropertySource("classpath:/env.properties") -public class EnvConfiguration{} +public class EnvConfig {} diff --git a/modules/infrastructure/jpa/src/main/java/jpa/device/DeviceEntity.java b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/device/DeviceEntity.java similarity index 52% rename from modules/infrastructure/jpa/src/main/java/jpa/device/DeviceEntity.java rename to modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/device/DeviceEntity.java index 030191ba..93a0c4b4 100644 --- a/modules/infrastructure/jpa/src/main/java/jpa/device/DeviceEntity.java +++ b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/device/DeviceEntity.java @@ -1,4 +1,4 @@ -package jpa.device; +package com.whoz_in.infra.jpa.device; //@Entity public class DeviceEntity { diff --git a/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/device/DeviceJpaAdapter.java b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/device/DeviceJpaAdapter.java new file mode 100644 index 00000000..759bc435 --- /dev/null +++ b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/device/DeviceJpaAdapter.java @@ -0,0 +1,13 @@ +package com.whoz_in.infra.jpa.device; + +import com.whoz_in.domain.device.domain.DeviceRepository; +import org.springframework.stereotype.Repository; + +@Repository +public class DeviceJpaAdapter implements DeviceRepository { + + @Override + public void save() { + System.out.println("1"); + } +} diff --git a/modules/infrastructure/jpa/src/main/java/jpa/device/DeviceJpaRepository.java b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/device/DeviceJpaRepository.java similarity index 64% rename from modules/infrastructure/jpa/src/main/java/jpa/device/DeviceJpaRepository.java rename to modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/device/DeviceJpaRepository.java index 9de3baf9..a2ffabfe 100644 --- a/modules/infrastructure/jpa/src/main/java/jpa/device/DeviceJpaRepository.java +++ b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/device/DeviceJpaRepository.java @@ -1,10 +1,9 @@ -package jpa.device; +package com.whoz_in.infra.jpa.device; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -@Repository +//@Repository public interface DeviceJpaRepository extends JpaRepository { } \ No newline at end of file diff --git a/modules/infrastructure/jpa/src/main/java/jpa/device/DeviceJpaAdapter.java b/modules/infrastructure/jpa/src/main/java/jpa/device/DeviceJpaAdapter.java deleted file mode 100644 index 9192e54a..00000000 --- a/modules/infrastructure/jpa/src/main/java/jpa/device/DeviceJpaAdapter.java +++ /dev/null @@ -1,11 +0,0 @@ -package jpa.device; - -import domain.device.domain.DeviceRepository; - -public class DeviceJpaAdapter implements DeviceRepository { - - @Override - public void save() { - - } -} diff --git a/modules/infrastructure/spring/build.gradle b/modules/infrastructure/spring/build.gradle new file mode 100644 index 00000000..f4745908 --- /dev/null +++ b/modules/infrastructure/spring/build.gradle @@ -0,0 +1,19 @@ +plugins { + id 'java' +} + +group = 'com.Whoz-In' +version = '0.0.1-SNAPSHOT' + +repositories { + mavenCentral() +} + +dependencies { + testImplementation platform('org.junit:junit-bom:5.9.1') + testImplementation 'org.junit.jupiter:junit-jupiter' +} + +test { + useJUnitPlatform() +} \ No newline at end of file diff --git a/modules/domain/src/main/java/domain/shared/infrastructure/bus/event/SpringApplicationEventBus.java b/modules/infrastructure/spring/src/main/java/com/whoz_in/infra/spring/event/SpringApplicationEventBus.java similarity index 78% rename from modules/domain/src/main/java/domain/shared/infrastructure/bus/event/SpringApplicationEventBus.java rename to modules/infrastructure/spring/src/main/java/com/whoz_in/infra/spring/event/SpringApplicationEventBus.java index 5b9976e8..216a57f2 100644 --- a/modules/domain/src/main/java/domain/shared/infrastructure/bus/event/SpringApplicationEventBus.java +++ b/modules/infrastructure/spring/src/main/java/com/whoz_in/infra/spring/event/SpringApplicationEventBus.java @@ -1,8 +1,8 @@ -package domain.shared.infrastructure.bus.event; +package com.whoz_in.infra.spring.event; -import domain.shared.domain.bus.event.DomainEvent; -import domain.shared.domain.bus.event.EventBus; +import com.whoz_in.domain.shared.domain.bus.event.DomainEvent; +import com.whoz_in.domain.shared.domain.bus.event.EventBus; import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.context.ApplicationEventPublisher; diff --git a/settings.gradle b/settings.gradle index c3fae9e6..362dd9df 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,8 +1,10 @@ -rootProject.name = 'Whoz-In' +rootProject.name = 'whoz_in' include 'modules:domain' findProject(':modules:domain')?.name = 'domain' include 'modules:api' findProject(':modules:api')?.name = 'api' include 'modules:infrastructure:jpa' findProject(':modules:infrastructure:jpa')?.name = 'jpa' +include 'modules:infrastructure:spring' +findProject(':modules:infrastructure:spring')?.name = 'spring' From 18bdcd7e5d2164272aa4445957e4c07a296f1238 Mon Sep 17 00:00:00 2001 From: coco3x Date: Sun, 6 Oct 2024 13:42:35 +0900 Subject: [PATCH 09/11] =?UTF-8?q?depend:=20=EC=8A=A4=ED=94=84=EB=A7=81=20?= =?UTF-8?q?=EC=8B=9C=ED=81=90=EB=A6=AC=ED=8B=B0=20=EC=9D=98=EC=A1=B4?= =?UTF-8?q?=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/api/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/api/build.gradle b/modules/api/build.gradle index 4654130e..b7738ae9 100644 --- a/modules/api/build.gradle +++ b/modules/api/build.gradle @@ -19,6 +19,7 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter' implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-security' testImplementation platform('org.junit:junit-bom:5.9.1') testImplementation 'org.junit.jupiter:junit-jupiter' From cf4e0552109672f905d387d8f515257a15cf1c6f Mon Sep 17 00:00:00 2001 From: westzeroright Date: Tue, 8 Oct 2024 23:49:16 +0900 Subject: [PATCH 10/11] =?UTF-8?q?feat(infra):=20auth,=20member=20=EC=97=94?= =?UTF-8?q?=ED=8B=B0=ED=8B=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../whoz_in/infra/jpa/auth/AuthEntity.java | 55 ++++++++++++++++++ .../infra/jpa/member/MemberEntity.java | 56 +++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/auth/AuthEntity.java create mode 100644 modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/member/MemberEntity.java diff --git a/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/auth/AuthEntity.java b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/auth/AuthEntity.java new file mode 100644 index 00000000..7d28895d --- /dev/null +++ b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/auth/AuthEntity.java @@ -0,0 +1,55 @@ +package com.whoz_in.infra.jpa.auth; + +import com.whoz_in.domain.auth.domain.Auth; +import com.whoz_in.infra.jpa.member.MemberEntity; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToOne; + +@Entity +public class AuthEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + // ํšŒ์›์€ ์—ฌ๋Ÿฌ ๊ณ„์ •์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ + // ๊ณ„์ • ํ•˜๋‚˜๋‹น ํšŒ์› ์ •๋ณด ํ•˜๋‚˜์”ฉ ๊ณ ์œ ๋กœ ๊ฐ€์ง€๋ฏ€๋กœ ์ผ๋Œ€์ผ + @OneToOne + @JoinColumn(name = "member_id") + private MemberEntity memberEntity; + + @Column(name = "name", nullable = false) + private String loginId; + + @Column(name = "name", nullable = false) + private String password; + + protected AuthEntity() { } + + public AuthEntity(MemberEntity memberEntity, String loginId, String password) { + this.memberEntity = memberEntity; + this.loginId = loginId; + this.password = password; + } + + public Long getId() { + return id; + } + + public MemberEntity getMemberEntity() { + return memberEntity; + } + + public String getLoginId() { + return loginId; + } + + public String getPassword() { + return password; + } +} diff --git a/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/member/MemberEntity.java b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/member/MemberEntity.java new file mode 100644 index 00000000..93e63d20 --- /dev/null +++ b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/member/MemberEntity.java @@ -0,0 +1,56 @@ +package com.whoz_in.infra.jpa.member; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +@Entity +public class MemberEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "name", nullable = false) + private String name; + + @Column(name = "generation", nullable = false) + private int generation; + + @Column(name = "position", nullable = false) + private String position; + + @Column(name = "status_message", nullable = false) + private String statusMessage; + + public MemberEntity(String name, int generation, String position, String statusMessage) { + this.name = name; + this.generation = generation; + this.position = position; + this.statusMessage = statusMessage; + } + + protected MemberEntity() { } + + public Long getId() { + return id; + } + + public String getName() { + return name; + } + + public int getGeneration() { + return generation; + } + + public String getPosition() { + return position; + } + + public String getStatusMessage() { + return statusMessage; + } +} From c9ee2834d1ffd44cace64fb5ab3a594323e695de Mon Sep 17 00:00:00 2001 From: westzeroright Date: Tue, 8 Oct 2024 23:51:07 +0900 Subject: [PATCH 11/11] =?UTF-8?q?chore(api,=20domain,=20infra):=20?= =?UTF-8?q?=ED=8C=A8=ED=82=A4=EC=A7=80=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/whoz_in/api/auth/AuthController.java | 5 +++++ .../com/whoz_in/api/memebr/MemberController.java | 5 +++++ .../domain/auth/application/AuthService.java | 5 +++++ .../java/com/whoz_in/domain/auth/domain/Auth.java | 7 +++++++ .../whoz_in/domain/auth/domain/AuthRepository.java | 6 ++++++ .../domain/member/application/MemberService.java | 5 +++++ .../com/whoz_in/domain/member/domain/Member.java | 6 ++++++ .../domain/member/domain/MemberRepository.java | 5 +++++ .../com/whoz_in/infra/jpa/auth/AuthJpaAdapter.java | 13 +++++++++++++ .../whoz_in/infra/jpa/auth/AuthJpaRepository.java | 8 ++++++++ .../whoz_in/infra/jpa/member/MemberJpaAdapter.java | 12 ++++++++++++ .../infra/jpa/member/MemberJpaRepository.java | 7 +++++++ 12 files changed, 84 insertions(+) create mode 100644 modules/api/src/main/java/com/whoz_in/api/auth/AuthController.java create mode 100644 modules/api/src/main/java/com/whoz_in/api/memebr/MemberController.java create mode 100644 modules/domain/src/main/java/com/whoz_in/domain/auth/application/AuthService.java create mode 100644 modules/domain/src/main/java/com/whoz_in/domain/auth/domain/Auth.java create mode 100644 modules/domain/src/main/java/com/whoz_in/domain/auth/domain/AuthRepository.java create mode 100644 modules/domain/src/main/java/com/whoz_in/domain/member/application/MemberService.java create mode 100644 modules/domain/src/main/java/com/whoz_in/domain/member/domain/Member.java create mode 100644 modules/domain/src/main/java/com/whoz_in/domain/member/domain/MemberRepository.java create mode 100644 modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/auth/AuthJpaAdapter.java create mode 100644 modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/auth/AuthJpaRepository.java create mode 100644 modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/member/MemberJpaAdapter.java create mode 100644 modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/member/MemberJpaRepository.java diff --git a/modules/api/src/main/java/com/whoz_in/api/auth/AuthController.java b/modules/api/src/main/java/com/whoz_in/api/auth/AuthController.java new file mode 100644 index 00000000..8b471d2f --- /dev/null +++ b/modules/api/src/main/java/com/whoz_in/api/auth/AuthController.java @@ -0,0 +1,5 @@ +package com.whoz_in.api.auth; + +public class AuthController { + +} diff --git a/modules/api/src/main/java/com/whoz_in/api/memebr/MemberController.java b/modules/api/src/main/java/com/whoz_in/api/memebr/MemberController.java new file mode 100644 index 00000000..20fe2bd4 --- /dev/null +++ b/modules/api/src/main/java/com/whoz_in/api/memebr/MemberController.java @@ -0,0 +1,5 @@ +package com.whoz_in.api.memebr; + +public class MemberController { + +} diff --git a/modules/domain/src/main/java/com/whoz_in/domain/auth/application/AuthService.java b/modules/domain/src/main/java/com/whoz_in/domain/auth/application/AuthService.java new file mode 100644 index 00000000..ec2c8ac9 --- /dev/null +++ b/modules/domain/src/main/java/com/whoz_in/domain/auth/application/AuthService.java @@ -0,0 +1,5 @@ +package com.whoz_in.domain.auth.application; + +public class AuthService { + +} diff --git a/modules/domain/src/main/java/com/whoz_in/domain/auth/domain/Auth.java b/modules/domain/src/main/java/com/whoz_in/domain/auth/domain/Auth.java new file mode 100644 index 00000000..297dbb0b --- /dev/null +++ b/modules/domain/src/main/java/com/whoz_in/domain/auth/domain/Auth.java @@ -0,0 +1,7 @@ +package com.whoz_in.domain.auth.domain; + +import com.whoz_in.domain.shared.domain.AggregateRoot; + +public class Auth extends AggregateRoot { + +} diff --git a/modules/domain/src/main/java/com/whoz_in/domain/auth/domain/AuthRepository.java b/modules/domain/src/main/java/com/whoz_in/domain/auth/domain/AuthRepository.java new file mode 100644 index 00000000..23bfc5d8 --- /dev/null +++ b/modules/domain/src/main/java/com/whoz_in/domain/auth/domain/AuthRepository.java @@ -0,0 +1,6 @@ +package com.whoz_in.domain.auth.domain; + +public interface AuthRepository { + void save(); + +} diff --git a/modules/domain/src/main/java/com/whoz_in/domain/member/application/MemberService.java b/modules/domain/src/main/java/com/whoz_in/domain/member/application/MemberService.java new file mode 100644 index 00000000..64af0178 --- /dev/null +++ b/modules/domain/src/main/java/com/whoz_in/domain/member/application/MemberService.java @@ -0,0 +1,5 @@ +package com.whoz_in.domain.member.application; + +public class MemberService { + +} diff --git a/modules/domain/src/main/java/com/whoz_in/domain/member/domain/Member.java b/modules/domain/src/main/java/com/whoz_in/domain/member/domain/Member.java new file mode 100644 index 00000000..4a582dc0 --- /dev/null +++ b/modules/domain/src/main/java/com/whoz_in/domain/member/domain/Member.java @@ -0,0 +1,6 @@ +package com.whoz_in.domain.member.domain; + +import com.whoz_in.domain.shared.domain.AggregateRoot; + +public class Member extends AggregateRoot { +} diff --git a/modules/domain/src/main/java/com/whoz_in/domain/member/domain/MemberRepository.java b/modules/domain/src/main/java/com/whoz_in/domain/member/domain/MemberRepository.java new file mode 100644 index 00000000..5c48d22b --- /dev/null +++ b/modules/domain/src/main/java/com/whoz_in/domain/member/domain/MemberRepository.java @@ -0,0 +1,5 @@ +package com.whoz_in.domain.member.domain; + +public interface MemberRepository { + void save(); +} diff --git a/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/auth/AuthJpaAdapter.java b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/auth/AuthJpaAdapter.java new file mode 100644 index 00000000..efeb323b --- /dev/null +++ b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/auth/AuthJpaAdapter.java @@ -0,0 +1,13 @@ +package com.whoz_in.infra.jpa.auth; + +import com.whoz_in.domain.auth.domain.AuthRepository; +import org.springframework.stereotype.Repository; + +@Repository +public class AuthJpaAdapter implements AuthRepository { + + @Override + public void save() { + System.out.println("1"); + } +} diff --git a/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/auth/AuthJpaRepository.java b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/auth/AuthJpaRepository.java new file mode 100644 index 00000000..8cd27361 --- /dev/null +++ b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/auth/AuthJpaRepository.java @@ -0,0 +1,8 @@ +package com.whoz_in.infra.jpa.auth; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +public interface AuthJpaRepository extends JpaRepository { + +} diff --git a/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/member/MemberJpaAdapter.java b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/member/MemberJpaAdapter.java new file mode 100644 index 00000000..34f329e1 --- /dev/null +++ b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/member/MemberJpaAdapter.java @@ -0,0 +1,12 @@ +package com.whoz_in.infra.jpa.member; + +import org.springframework.stereotype.Repository; + +@Repository +public class MemberJpaAdapter implements MemberRepository{ + + @Override + public void save() { + System.out.println("1"); + } +} diff --git a/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/member/MemberJpaRepository.java b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/member/MemberJpaRepository.java new file mode 100644 index 00000000..02318cf4 --- /dev/null +++ b/modules/infrastructure/jpa/src/main/java/com/whoz_in/infra/jpa/member/MemberJpaRepository.java @@ -0,0 +1,7 @@ +package com.whoz_in.infra.jpa.member; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MemberJpaRepository extends JpaRepository { + +}