From 5047d73741c2cbbc25b0de4d6c2357f4dab4a620 Mon Sep 17 00:00:00 2001 From: HubCreator Date: Tue, 15 Aug 2023 23:51:50 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20`InitData`=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=EB=B0=8F=20=EA=B8=B0=EC=A1=B4=20=EC=A2=8C=ED=91=9C=20=EC=B6=94?= =?UTF-8?q?=EC=B6=9C=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - application.yml에서 기본 프로파일을 dev로 서정 - dev와 prod의 공통 적용 속성은 상단으로 분리 --- .../memory/CoordinateExtractor.java | 2 +- .../repository/MemberRepository.java | 7 ++++ .../keepsake/ourmemory/config/InitData.java | 42 +++++++++++++++++++ .../ui/common/GlobalExceptionHandler.java | 6 ++- our-memory/src/main/resources/application.yml | 22 ++++++---- 5 files changed, 69 insertions(+), 10 deletions(-) create mode 100644 our-memory/src/main/java/keepsake/ourmemory/application/repository/MemberRepository.java create mode 100644 our-memory/src/main/java/keepsake/ourmemory/config/InitData.java diff --git a/our-memory/src/main/java/keepsake/ourmemory/application/memory/CoordinateExtractor.java b/our-memory/src/main/java/keepsake/ourmemory/application/memory/CoordinateExtractor.java index d326238..fa8cb50 100644 --- a/our-memory/src/main/java/keepsake/ourmemory/application/memory/CoordinateExtractor.java +++ b/our-memory/src/main/java/keepsake/ourmemory/application/memory/CoordinateExtractor.java @@ -24,7 +24,7 @@ public static Coordinate extractCoordinate(final Image image) throws IOException return Coordinate.of(latitude, longitude); } } catch (ImageProcessingException e) { - throw new RuntimeException(e); + return Coordinate.empty(); } return Coordinate.empty(); } diff --git a/our-memory/src/main/java/keepsake/ourmemory/application/repository/MemberRepository.java b/our-memory/src/main/java/keepsake/ourmemory/application/repository/MemberRepository.java new file mode 100644 index 0000000..9ed6f62 --- /dev/null +++ b/our-memory/src/main/java/keepsake/ourmemory/application/repository/MemberRepository.java @@ -0,0 +1,7 @@ +package keepsake.ourmemory.application.repository; + +import keepsake.ourmemory.domain.member.Member; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MemberRepository extends JpaRepository { +} diff --git a/our-memory/src/main/java/keepsake/ourmemory/config/InitData.java b/our-memory/src/main/java/keepsake/ourmemory/config/InitData.java new file mode 100644 index 0000000..37e63a4 --- /dev/null +++ b/our-memory/src/main/java/keepsake/ourmemory/config/InitData.java @@ -0,0 +1,42 @@ +package keepsake.ourmemory.config; + +import keepsake.ourmemory.application.repository.MemberRepository; +import keepsake.ourmemory.domain.member.Email; +import keepsake.ourmemory.domain.member.Member; +import keepsake.ourmemory.domain.member.MemberName; +import keepsake.ourmemory.domain.member.Password; +import keepsake.ourmemory.domain.member.PhoneNumber; +import lombok.RequiredArgsConstructor; +import org.springframework.boot.CommandLineRunner; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +@Component +@Profile({"dev", "prod"}) +@RequiredArgsConstructor +public class InitData implements CommandLineRunner { + private final InitService initService; + + @Override + public void run(final String... args) { + initService.init(); + } + + @Component + @RequiredArgsConstructor + private static class InitService { + private final MemberRepository memberRepository; + + @Transactional + public void init() { + Member member = new Member( + new MemberName("아이크"), + new Email("a@a.com"), + new Password("아이크짱"), + new PhoneNumber("01012341234") + ); + memberRepository.save(member); + } + } +} diff --git a/our-memory/src/main/java/keepsake/ourmemory/ui/common/GlobalExceptionHandler.java b/our-memory/src/main/java/keepsake/ourmemory/ui/common/GlobalExceptionHandler.java index e7f5a3e..68ca4cf 100644 --- a/our-memory/src/main/java/keepsake/ourmemory/ui/common/GlobalExceptionHandler.java +++ b/our-memory/src/main/java/keepsake/ourmemory/ui/common/GlobalExceptionHandler.java @@ -32,7 +32,9 @@ public ResponseEntity> handleMethodArgumentNotValidException @ExceptionHandler(Exception.class) public ResponseEntity handleUnexpectedException(Exception e) { log.error("error from handleUnexpectedException = ", e); - ErrorResponse errorResponse = new ErrorResponse(e.getMessage()); - return ResponseEntity.internalServerError().body(errorResponse); + ErrorResponse errorResponse = new ErrorResponse("서버에서 예상치 못한 문제가 발생했습니다."); + return ResponseEntity + .status(HttpStatus.INTERNAL_SERVER_ERROR) + .body(errorResponse); } } diff --git a/our-memory/src/main/resources/application.yml b/our-memory/src/main/resources/application.yml index 2ed9dc6..208cdc0 100644 --- a/our-memory/src/main/resources/application.yml +++ b/our-memory/src/main/resources/application.yml @@ -1,10 +1,8 @@ -spring: - datasource: - url: jdbc:h2:mem:testdb;MODE=MySQL - h2: - console: - enabled: true +spring: # 전체 공통 설정 + profiles: + active: dev # 기본 프로파일을 dev로 설정 jpa: + show-sql: true hibernate: ddl-auto: create properties: @@ -16,11 +14,21 @@ spring: multipart: maxFileSize: 10MB maxRequestSize: 20MB +--- +spring: # dev 프로파일에만 적용할 설정 + config: + activate: + on-profile: dev + datasource: + url: jdbc:h2:mem:testdb;MODE=MySQL + h2: + console: + enabled: true image: directory-path: src/main/resources/static/images/ web-uri: localhost:8080/images/ --- -spring: +spring: # prod 프로파일에만 적용할 설정 config: activate: on-profile: prod