From 56b0c72f63bb4a98d4088cfd7fd76dc1ad6bbcf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dhji=28=EC=A7=80=EB=8C=80=ED=95=9C=29?= Date: Thu, 15 Feb 2024 16:50:40 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EB=AA=A8=EB=93=88=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - db config 분리 - module 구성 변경 --- app/kac-app/build.gradle | 21 +- .../src/main/resources/application.yml | 7 +- .../src/main/resources/static/docs/index.html | 56 +- .../test/java/kr/co/palnet/kac/BaseTest.java | 6 + .../kac/com/code/ComnCodeControllerTest.java | 544 +++++++++--------- build.gradle | 92 ++- common/config-db/build.gradle | 12 + .../palnet/kac/config/db}/KacJpaConfig.java | 2 +- .../palnet/kac/config/db}/QueryDslConfig.java | 2 +- .../src/main/resources/application-db.yml | 5 + data/cns/build.gradle | 5 +- data/com/build.gradle | 5 +- data/ctr/build.gradle | 5 +- data/flt/build.gradle | 5 +- data/other/build.gradle | 5 +- data/pty/build.gradle | 5 +- settings.gradle | 11 +- web/api-common/build.gradle | 10 +- web/security/build.gradle | 4 +- 19 files changed, 402 insertions(+), 400 deletions(-) create mode 100644 common/config-db/build.gradle rename {app/kac-app/src/main/java/kr/co/palnet/kac/app/config => common/config-db/src/main/java/kr/co/palnet/kac/config/db}/KacJpaConfig.java (98%) rename {app/kac-app/src/main/java/kr/co/palnet/kac/app/config => common/config-db/src/main/java/kr/co/palnet/kac/config/db}/QueryDslConfig.java (92%) rename app/kac-app/src/main/resources/application-database.yml => common/config-db/src/main/resources/application-db.yml (59%) diff --git a/app/kac-app/build.gradle b/app/kac-app/build.gradle index d9c2784..3c638c8 100644 --- a/app/kac-app/build.gradle +++ b/app/kac-app/build.gradle @@ -11,17 +11,19 @@ configurations { dependencies { implementation "$boot:spring-boot-starter-web" + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0' // security implementation "$boot:spring-boot-starter-security" // implementation "com.auth0:java-jwt:4.4.0" + // db - runtimeOnly "com.mysql:mysql-connector-j" - implementation "org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4:1.16" +// runtimeOnly "com.mysql:mysql-connector-j" +// implementation "org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4:1.16" + implementation("org.springframework:spring-tx") // jpa - implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0' - implementation "$boot:spring-boot-starter-data-jpa" +// implementation "$boot:spring-boot-starter-data-jpa" // querydsl - implementation "com.querydsl:querydsl-jpa:5.0.0:jakarta" +// implementation "com.querydsl:querydsl-jpa:5.0.0:jakarta" // rest doc @@ -32,10 +34,11 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' - implementation project(":common-core") - implementation project(":common-util") - implementation project(":web-security") - implementation project(":web-api-common") + implementation project(":common:core") +// implementation project(":common:config-db") + implementation project(":common:util") + implementation project(":web:security") + implementation project(":web:api-common") } ext { diff --git a/app/kac-app/src/main/resources/application.yml b/app/kac-app/src/main/resources/application.yml index ce2a2e1..a488838 100644 --- a/app/kac-app/src/main/resources/application.yml +++ b/app/kac-app/src/main/resources/application.yml @@ -1,16 +1,11 @@ spring: profiles: include: - - database - swagger + - db threads: virtual: enabled: true - jpa: - hibernate: - ddl-auto: none - naming: - physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl logging: level: diff --git a/app/kac-app/src/main/resources/static/docs/index.html b/app/kac-app/src/main/resources/static/docs/index.html index 855eb1d..ddab2f6 100644 --- a/app/kac-app/src/main/resources/static/docs/index.html +++ b/app/kac-app/src/main/resources/static/docs/index.html @@ -519,7 +519,7 @@ Content-Type: application/json;charset=UTF-8 Content-Length: 143 [ { - "groupCd" : "NEW_GROUP_1707813860", + "groupCd" : "NEW_GROUP_1707924397", "siteCd" : "KAC", "groupCdNm" : "신규그룹001", "rm" : "비고....", @@ -626,7 +626,7 @@ Content-Length: 143

[HTTP REQUEST INFO]

-
GET /v1/com/code/code?groupCd=NEW_GROUP_1707813860&langDivCd=ko_KR HTTP/1.1
+
GET /v1/com/code/code?groupCd=NEW_GROUP_1707924397&langDivCd=ko_KR HTTP/1.1
 Content-Type: application/json;charset=UTF-8
 Accept: application/json
 Host: localhost:8080
@@ -668,7 +668,7 @@ Content-Type: application/json;charset=UTF-8 Content-Length: 190 [ { - "groupCd" : "NEW_GROUP_1707813860", + "groupCd" : "NEW_GROUP_1707924397", "cdId" : "NEW_CODE001", "cdNm" : "신규코드001", "upperCd" : null, @@ -763,7 +763,7 @@ Content-Type: application/json;charset=UTF-8 Content-Length: 143 [ { - "groupCd" : "NEW_GROUP_1707813860", + "groupCd" : "NEW_GROUP_1707924397", "siteCd" : "KAC", "groupCdNm" : "신규그룹001", "rm" : "비고....", @@ -835,7 +835,7 @@ Content-Length: 118 Host: localhost:8080 { - "groupCd" : "NEW_GROUP_1707813860", + "groupCd" : "NEW_GROUP_1707924397", "siteCd" : "KAC", "groupCdNm" : "신규그룹001", "rm" : "비고...." @@ -894,14 +894,14 @@ Content-Type: application/json;charset=UTF-8 Content-Length: 276 { - "groupCd" : "NEW_GROUP_1707813860", + "groupCd" : "NEW_GROUP_1707924397", "siteCd" : "KAC", "groupCdNm" : "신규그룹001", "rm" : "비고....", "createUserId" : "CREATE_USER", - "createDt" : "2024-02-13T17:44:20.692308", + "createDt" : "2024-02-15T00:26:37.902778", "updateUserId" : "CREATE_USER", - "updateDt" : "2024-02-13T17:44:20.692313" + "updateDt" : "2024-02-15T00:26:37.902782" }
@@ -987,7 +987,7 @@ Content-Length: 132 Host: localhost:8080 { - "groupCd" : "NEW_GROUP_1707813860", + "groupCd" : "NEW_GROUP_1707924397", "cdId" : "NEW_CODE001", "sortOrdr" : 0, "addInfoValue" : "추가!!", @@ -1053,16 +1053,16 @@ Content-Type: application/json;charset=UTF-8 Content-Length: 310 { - "groupCd" : "NEW_GROUP_1707813860", + "groupCd" : "NEW_GROUP_1707924397", "cdId" : "NEW_CODE001", "upperCd" : null, "sortOrdr" : 0, "addInfoValue" : "추가!!", "useYn" : "Y", "createUserId" : "CREATE_USER", - "createDt" : "2024-02-13T17:44:20.680589", + "createDt" : "2024-02-15T00:26:37.887931", "updateUserId" : "CREATE_USER", - "updateDt" : "2024-02-13T17:44:20.680594" + "updateDt" : "2024-02-15T00:26:37.887936" } @@ -1160,7 +1160,7 @@ Content-Length: 144 Host: localhost:8080 { - "groupCd" : "NEW_GROUP_1707813860", + "groupCd" : "NEW_GROUP_1707924397", "cdId" : "NEW_CODE001", "langDivCd" : "ko_KR", "cdNm" : "신규코드001", @@ -1226,15 +1226,15 @@ Content-Type: application/json;charset=UTF-8 Content-Length: 302 { - "groupCd" : "NEW_GROUP_1707813860", + "groupCd" : "NEW_GROUP_1707924397", "cdId" : "NEW_CODE001", "langDivCd" : "ko_KR", "cdNm" : "신규코드001", "rm" : "비고....", "createUserId" : "CREATE_USER", - "createDt" : "2024-02-13T17:44:20.601889", + "createDt" : "2024-02-15T00:26:37.826757", "updateUserId" : "CREATE_USER", - "updateDt" : "2024-02-13T17:44:20.601893" + "updateDt" : "2024-02-15T00:26:37.826761" } @@ -1326,7 +1326,7 @@ Content-Length: 118 Host: localhost:8080 { - "groupCd" : "NEW_GROUP_1707813860", + "groupCd" : "NEW_GROUP_1707924397", "siteCd" : "KAC", "groupCdNm" : "신규그룹001", "rm" : "비고...." @@ -1385,14 +1385,14 @@ Content-Type: application/json;charset=UTF-8 Content-Length: 275 { - "groupCd" : "NEW_GROUP_1707813860", + "groupCd" : "NEW_GROUP_1707924397", "siteCd" : "KAC", "groupCdNm" : "신규그룹001", "rm" : "비고....", "createUserId" : "CREATE_USER", - "createDt" : "2024-02-13T17:44:20.63112", + "createDt" : "2024-02-15T00:26:37.84228", "updateUserId" : "UPDATE_USER", - "updateDt" : "2024-02-13T17:44:20.633442" + "updateDt" : "2024-02-15T00:26:37.844978" } @@ -1478,7 +1478,7 @@ Content-Length: 132 Host: localhost:8080 { - "groupCd" : "NEW_GROUP_1707813860", + "groupCd" : "NEW_GROUP_1707924397", "cdId" : "NEW_CODE001", "sortOrdr" : 0, "addInfoValue" : "수정!!", @@ -1544,16 +1544,16 @@ Content-Type: application/json;charset=UTF-8 Content-Length: 310 { - "groupCd" : "NEW_GROUP_1707813860", + "groupCd" : "NEW_GROUP_1707924397", "cdId" : "NEW_CODE001", "upperCd" : null, "sortOrdr" : 0, "addInfoValue" : "수정!!", "useYn" : "Y", "createUserId" : "CREATE_USER", - "createDt" : "2024-02-13T17:44:20.542706", + "createDt" : "2024-02-15T00:26:37.757743", "updateUserId" : "UPDATE_USER", - "updateDt" : "2024-02-13T17:44:20.555142" + "updateDt" : "2024-02-15T00:26:37.770459" } @@ -1651,7 +1651,7 @@ Content-Length: 143 Host: localhost:8080 { - "groupCd" : "NEW_GROUP_1707813860", + "groupCd" : "NEW_GROUP_1707924397", "cdId" : "NEW_CODE001", "langDivCd" : "ko_KR", "cdNm" : "신규코드001", @@ -1717,15 +1717,15 @@ Content-Type: application/json;charset=UTF-8 Content-Length: 301 { - "groupCd" : "NEW_GROUP_1707813860", + "groupCd" : "NEW_GROUP_1707924397", "cdId" : "NEW_CODE001", "langDivCd" : "ko_KR", "cdNm" : "신규코드001", "rm" : "수정...", "createUserId" : "CREATE_USER", - "createDt" : "2024-02-13T17:44:20.577931", + "createDt" : "2024-02-15T00:26:37.798977", "updateUserId" : "UPDATE_USER", - "updateDt" : "2024-02-13T17:44:20.580741" + "updateDt" : "2024-02-15T00:26:37.803818" } diff --git a/app/kac-app/src/test/java/kr/co/palnet/kac/BaseTest.java b/app/kac-app/src/test/java/kr/co/palnet/kac/BaseTest.java index 0d7995e..054591a 100644 --- a/app/kac-app/src/test/java/kr/co/palnet/kac/BaseTest.java +++ b/app/kac-app/src/test/java/kr/co/palnet/kac/BaseTest.java @@ -1,9 +1,13 @@ package kr.co.palnet.kac; import com.fasterxml.jackson.databind.ObjectMapper; +import kr.co.palnet.kac.app.KacAppApplication; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; import org.springframework.restdocs.RestDocumentationContextProvider; +import org.springframework.restdocs.RestDocumentationExtension; import org.springframework.restdocs.mockmvc.MockMvcRestDocumentation; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; @@ -13,6 +17,8 @@ import org.springframework.web.filter.CharacterEncodingFilter; import static org.springframework.restdocs.operation.preprocess.Preprocessors.modifyUris; import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint; +@SpringBootTest(classes = KacAppApplication.class) +@ExtendWith({RestDocumentationExtension.class}) public class BaseTest { @Autowired diff --git a/app/kac-app/src/test/java/kr/co/palnet/kac/com/code/ComnCodeControllerTest.java b/app/kac-app/src/test/java/kr/co/palnet/kac/com/code/ComnCodeControllerTest.java index 1af604a..8217411 100644 --- a/app/kac-app/src/test/java/kr/co/palnet/kac/com/code/ComnCodeControllerTest.java +++ b/app/kac-app/src/test/java/kr/co/palnet/kac/com/code/ComnCodeControllerTest.java @@ -1,37 +1,29 @@ package kr.co.palnet.kac.com.code; -import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document; -import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessResponse; -import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint; -import static org.springframework.restdocs.payload.PayloadDocumentation.*; -import static org.springframework.restdocs.request.RequestDocumentation.*; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; -import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - import kr.co.palnet.kac.BaseTest; import kr.co.palnet.kac.api.v1.common.code.model.FormCodeGroupRQ; import kr.co.palnet.kac.api.v1.common.code.model.FormCodeLangRQ; import kr.co.palnet.kac.api.v1.common.code.model.FormCodeRQ; import kr.co.palnet.kac.api.v1.common.code.service.ComCodeService; -import lombok.RequiredArgsConstructor; - import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; -import org.springframework.restdocs.RestDocumentationExtension; import org.springframework.restdocs.payload.JsonFieldType; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import kr.co.palnet.kac.app.KacAppApplication; +import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document; +import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessResponse; +import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint; +import static org.springframework.restdocs.payload.PayloadDocumentation.*; +import static org.springframework.restdocs.request.RequestDocumentation.parameterWithName; +import static org.springframework.restdocs.request.RequestDocumentation.queryParameters; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; +import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + -@SpringBootTest(classes = KacAppApplication.class) -@ExtendWith({RestDocumentationExtension.class}) -@RequiredArgsConstructor public class ComnCodeControllerTest extends BaseTest { @Autowired @@ -41,85 +33,85 @@ public class ComnCodeControllerTest extends BaseTest { @DisplayName("언어코드 삭제") @Test - public void deleteLang() throws Exception{ + public void deleteLang() throws Exception { String groupCd = "NEW_GROUP001"; String cdId = "NEW_CODE001"; String langDivCd = "ko_KR"; this.mockMvc.perform( - delete(this.BASE_URL + "/lang?groupCd=" + groupCd + "&cdId=" + cdId + "&langDivCd=" + langDivCd) - .contentType(MediaType.APPLICATION_JSON_VALUE) - .accept(MediaType.APPLICATION_JSON_VALUE) - ) - .andDo(print()) - .andDo( - document( - "com/code/lang/delete", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름 - preprocessResponse(prettyPrint()), - queryParameters( - parameterWithName("groupCd").description("그룹 아이디"), - parameterWithName("cdId").description("코드 아이디"), - parameterWithName("langDivCd").description("삭제할 언어코드") + delete(this.BASE_URL + "/lang?groupCd=" + groupCd + "&cdId=" + cdId + "&langDivCd=" + langDivCd) + .contentType(MediaType.APPLICATION_JSON_VALUE) + .accept(MediaType.APPLICATION_JSON_VALUE) ) - ) - ) - .andExpect(status().isOk()); + .andDo(print()) + .andDo( + document( + "com/code/lang/delete", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름 + preprocessResponse(prettyPrint()), + queryParameters( + parameterWithName("groupCd").description("그룹 아이디"), + parameterWithName("cdId").description("코드 아이디"), + parameterWithName("langDivCd").description("삭제할 언어코드") + ) + ) + ) + .andExpect(status().isOk()); } @DisplayName("코드 삭제") @Test - public void deleteCode() throws Exception{ + public void deleteCode() throws Exception { String groupCd = "NEW_GROUP001"; String cdId = "NEW_CODE001"; this.mockMvc.perform( - delete(this.BASE_URL + "/code?groupCd=" + groupCd + "&cdId=" + cdId) - .contentType(MediaType.APPLICATION_JSON_VALUE) - .accept(MediaType.APPLICATION_JSON_VALUE) - ) - .andDo(print()) - .andDo( - document( - "com/code/code/delete", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름 - preprocessResponse(prettyPrint()), - queryParameters( - parameterWithName("groupCd").description("그룹 아이디"), - parameterWithName("cdId").description("코드 아이디") + delete(this.BASE_URL + "/code?groupCd=" + groupCd + "&cdId=" + cdId) + .contentType(MediaType.APPLICATION_JSON_VALUE) + .accept(MediaType.APPLICATION_JSON_VALUE) + ) + .andDo(print()) + .andDo( + document( + "com/code/code/delete", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름 + preprocessResponse(prettyPrint()), + queryParameters( + parameterWithName("groupCd").description("그룹 아이디"), + parameterWithName("cdId").description("코드 아이디") + ) + ) ) - ) - ) - .andExpect(status().isOk()); + .andExpect(status().isOk()); } @DisplayName("그룹 삭제") @Test public void deleteCodeGroup() throws Exception { - + String deleteGroupCd = "NEW_GROUP001"; this.mockMvc.perform( - delete(this.BASE_URL + "/group?groupCd=" + deleteGroupCd) - .contentType(MediaType.APPLICATION_JSON_VALUE) - .accept(MediaType.APPLICATION_JSON_VALUE) - ) - .andDo(print()) - .andDo( - document( - "com/code/group/delete", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름 - preprocessResponse(prettyPrint()), - queryParameters( - parameterWithName("groupCd").description("그룹 아이디") + delete(this.BASE_URL + "/group?groupCd=" + deleteGroupCd) + .contentType(MediaType.APPLICATION_JSON_VALUE) + .accept(MediaType.APPLICATION_JSON_VALUE) ) - ) - ) - .andExpect(status().isOk()); + .andDo(print()) + .andDo( + document( + "com/code/group/delete", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름 + preprocessResponse(prettyPrint()), + queryParameters( + parameterWithName("groupCd").description("그룹 아이디") + ) + ) + ) + .andExpect(status().isOk()); } @DisplayName("코드의 언어코드 수정") @Test @Transactional - public void updateCodeLang() throws Exception{ - + public void updateCodeLang() throws Exception { + String randomNm = "NEW_GROUP_" + System.currentTimeMillis(); randomNm = randomNm.substring(0, 20); @@ -133,53 +125,53 @@ public class ComnCodeControllerTest extends BaseTest { comCodeService.createCodeLang(langRq); String jsonRQ = """ - { - "groupCd": "%s", - "cdId": "NEW_CODE001", - "langDivCd": "ko_KR", - "cdNm": "신규코드001", - "rm": "수정..." - } - """.formatted(randomNm); + { + "groupCd": "%s", + "cdId": "NEW_CODE001", + "langDivCd": "ko_KR", + "cdNm": "신규코드001", + "rm": "수정..." + } + """.formatted(randomNm); this.mockMvc.perform( - put(this.BASE_URL + "/lang") - .contentType(MediaType.APPLICATION_JSON_VALUE) - .content(jsonRQ) - .accept(MediaType.APPLICATION_JSON_VALUE) - ) - .andDo(print()) - .andDo( - document( - "com/code/lang/update", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름 - preprocessResponse(prettyPrint()), - requestFields( - fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), - fieldWithPath("cdId").type(JsonFieldType.STRING).description("코드 아이디"), - fieldWithPath("langDivCd").type(JsonFieldType.STRING).description("언어코드"), - fieldWithPath("cdNm").type(JsonFieldType.STRING).description("코드이름[언어별]"), - fieldWithPath("rm").type(JsonFieldType.STRING).description("비고") - ), - responseFields( - fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), - fieldWithPath("cdId").type(JsonFieldType.STRING).description("코드 아이디"), - fieldWithPath("langDivCd").type(JsonFieldType.STRING).description("언어코드"), - fieldWithPath("cdNm").type(JsonFieldType.STRING).description("코드이름[언어별]"), - fieldWithPath("rm").type(JsonFieldType.STRING).description("비고"), - fieldWithPath("createUserId").type(JsonFieldType.STRING).description("등록한 유저 아이디"), - fieldWithPath("createDt").type(JsonFieldType.STRING).description("등록일시"), - fieldWithPath("updateUserId").type(JsonFieldType.STRING).description("수정한 유저 아이디"), - fieldWithPath("updateDt").type(JsonFieldType.STRING).description("수정일시") + put(this.BASE_URL + "/lang") + .contentType(MediaType.APPLICATION_JSON_VALUE) + .content(jsonRQ) + .accept(MediaType.APPLICATION_JSON_VALUE) + ) + .andDo(print()) + .andDo( + document( + "com/code/lang/update", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름 + preprocessResponse(prettyPrint()), + requestFields( + fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), + fieldWithPath("cdId").type(JsonFieldType.STRING).description("코드 아이디"), + fieldWithPath("langDivCd").type(JsonFieldType.STRING).description("언어코드"), + fieldWithPath("cdNm").type(JsonFieldType.STRING).description("코드이름[언어별]"), + fieldWithPath("rm").type(JsonFieldType.STRING).description("비고") + ), + responseFields( + fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), + fieldWithPath("cdId").type(JsonFieldType.STRING).description("코드 아이디"), + fieldWithPath("langDivCd").type(JsonFieldType.STRING).description("언어코드"), + fieldWithPath("cdNm").type(JsonFieldType.STRING).description("코드이름[언어별]"), + fieldWithPath("rm").type(JsonFieldType.STRING).description("비고"), + fieldWithPath("createUserId").type(JsonFieldType.STRING).description("등록한 유저 아이디"), + fieldWithPath("createDt").type(JsonFieldType.STRING).description("등록일시"), + fieldWithPath("updateUserId").type(JsonFieldType.STRING).description("수정한 유저 아이디"), + fieldWithPath("updateDt").type(JsonFieldType.STRING).description("수정일시") + ) + ) ) - ) - ) - .andExpect(status().isOk()); + .andExpect(status().isOk()); } @DisplayName("코드 수정") @Test @Transactional - public void updateCode() throws Exception{ + public void updateCode() throws Exception { String randomNm = "NEW_GROUP_" + System.currentTimeMillis(); randomNm = randomNm.substring(0, 20); @@ -194,54 +186,54 @@ public class ComnCodeControllerTest extends BaseTest { comCodeService.createCodeLang(langRq); String jsonRQ = """ - { - "groupCd": "%s", - "cdId": "NEW_CODE001", - "sortOrdr": 0, - "addInfoValue": "수정!!", - "useYn": "Y" - } - """.formatted(randomNm); + { + "groupCd": "%s", + "cdId": "NEW_CODE001", + "sortOrdr": 0, + "addInfoValue": "수정!!", + "useYn": "Y" + } + """.formatted(randomNm); this.mockMvc.perform( - put(this.BASE_URL + "/code") - .contentType(MediaType.APPLICATION_JSON_VALUE) - .content(jsonRQ) - .accept(MediaType.APPLICATION_JSON_VALUE) - ) - .andDo(print()) - .andDo( - document( - "com/code/code/update", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름 - preprocessResponse(prettyPrint()), - requestFields( - fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), - fieldWithPath("cdId").type(JsonFieldType.STRING).description("코드 아이디"), - fieldWithPath("sortOrdr").type(JsonFieldType.NUMBER).description("정렬순서"), - fieldWithPath("addInfoValue").type(JsonFieldType.STRING).description("추가사항"), - fieldWithPath("useYn").type(JsonFieldType.STRING).description("사용여부") - ), - responseFields( - fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), - fieldWithPath("cdId").type(JsonFieldType.STRING).description("코드 아이디"), - fieldWithPath("upperCd").type(JsonFieldType.STRING).description("상위 아이디").optional(), - fieldWithPath("sortOrdr").type(JsonFieldType.NUMBER).description("정렬순서"), - fieldWithPath("addInfoValue").type(JsonFieldType.STRING).description("추가사항"), - fieldWithPath("useYn").type(JsonFieldType.STRING).description("사용여부"), - fieldWithPath("createUserId").type(JsonFieldType.STRING).description("등록한 유저 아이디"), - fieldWithPath("createDt").type(JsonFieldType.STRING).description("등록일시"), - fieldWithPath("updateUserId").type(JsonFieldType.STRING).description("수정한 유저 아이디"), - fieldWithPath("updateDt").type(JsonFieldType.STRING).description("수정일시") + put(this.BASE_URL + "/code") + .contentType(MediaType.APPLICATION_JSON_VALUE) + .content(jsonRQ) + .accept(MediaType.APPLICATION_JSON_VALUE) ) - ) - ) - .andExpect(status().isOk()); + .andDo(print()) + .andDo( + document( + "com/code/code/update", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름 + preprocessResponse(prettyPrint()), + requestFields( + fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), + fieldWithPath("cdId").type(JsonFieldType.STRING).description("코드 아이디"), + fieldWithPath("sortOrdr").type(JsonFieldType.NUMBER).description("정렬순서"), + fieldWithPath("addInfoValue").type(JsonFieldType.STRING).description("추가사항"), + fieldWithPath("useYn").type(JsonFieldType.STRING).description("사용여부") + ), + responseFields( + fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), + fieldWithPath("cdId").type(JsonFieldType.STRING).description("코드 아이디"), + fieldWithPath("upperCd").type(JsonFieldType.STRING).description("상위 아이디").optional(), + fieldWithPath("sortOrdr").type(JsonFieldType.NUMBER).description("정렬순서"), + fieldWithPath("addInfoValue").type(JsonFieldType.STRING).description("추가사항"), + fieldWithPath("useYn").type(JsonFieldType.STRING).description("사용여부"), + fieldWithPath("createUserId").type(JsonFieldType.STRING).description("등록한 유저 아이디"), + fieldWithPath("createDt").type(JsonFieldType.STRING).description("등록일시"), + fieldWithPath("updateUserId").type(JsonFieldType.STRING).description("수정한 유저 아이디"), + fieldWithPath("updateDt").type(JsonFieldType.STRING).description("수정일시") + ) + ) + ) + .andExpect(status().isOk()); } @DisplayName("그룹 수정") @Test @Transactional - public void updateCodeGroup() throws Exception{ + public void updateCodeGroup() throws Exception { String randomNm = "NEW_GROUP_" + System.currentTimeMillis(); randomNm = randomNm.substring(0, 20); @@ -251,50 +243,50 @@ public class ComnCodeControllerTest extends BaseTest { String jsonRQ = """ - { - "groupCd": "%s", - "siteCd": "KAC", - "groupCdNm": "신규그룹001", - "rm": "비고...." - } - """.formatted(randomNm); + { + "groupCd": "%s", + "siteCd": "KAC", + "groupCdNm": "신규그룹001", + "rm": "비고...." + } + """.formatted(randomNm); this.mockMvc.perform( - put(this.BASE_URL + "/group") - .contentType(MediaType.APPLICATION_JSON_VALUE) - .content(jsonRQ) - .accept(MediaType.APPLICATION_JSON_VALUE) - ) - .andDo(print()) - .andDo( - document( - "com/code/group/update", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름 - preprocessResponse(prettyPrint()), - requestFields( - fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), - fieldWithPath("siteCd").type(JsonFieldType.STRING).description("사이트코드"), - fieldWithPath("groupCdNm").type(JsonFieldType.STRING).description("그룹이름"), - fieldWithPath("rm").type(JsonFieldType.STRING).description("비고") - ), - responseFields( - fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), - fieldWithPath("siteCd").type(JsonFieldType.STRING).description("사이트코드"), - fieldWithPath("groupCdNm").type(JsonFieldType.STRING).description("그룹이름"), - fieldWithPath("rm").type(JsonFieldType.STRING).description("비고"), - fieldWithPath("createUserId").type(JsonFieldType.STRING).description("등록한 유저 아이디"), - fieldWithPath("createDt").type(JsonFieldType.STRING).description("등록일시"), - fieldWithPath("updateUserId").type(JsonFieldType.STRING).description("수정한 유저 아이디"), - fieldWithPath("updateDt").type(JsonFieldType.STRING).description("수정일시") + put(this.BASE_URL + "/group") + .contentType(MediaType.APPLICATION_JSON_VALUE) + .content(jsonRQ) + .accept(MediaType.APPLICATION_JSON_VALUE) + ) + .andDo(print()) + .andDo( + document( + "com/code/group/update", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름 + preprocessResponse(prettyPrint()), + requestFields( + fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), + fieldWithPath("siteCd").type(JsonFieldType.STRING).description("사이트코드"), + fieldWithPath("groupCdNm").type(JsonFieldType.STRING).description("그룹이름"), + fieldWithPath("rm").type(JsonFieldType.STRING).description("비고") + ), + responseFields( + fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), + fieldWithPath("siteCd").type(JsonFieldType.STRING).description("사이트코드"), + fieldWithPath("groupCdNm").type(JsonFieldType.STRING).description("그룹이름"), + fieldWithPath("rm").type(JsonFieldType.STRING).description("비고"), + fieldWithPath("createUserId").type(JsonFieldType.STRING).description("등록한 유저 아이디"), + fieldWithPath("createDt").type(JsonFieldType.STRING).description("등록일시"), + fieldWithPath("updateUserId").type(JsonFieldType.STRING).description("수정한 유저 아이디"), + fieldWithPath("updateDt").type(JsonFieldType.STRING).description("수정일시") + ) + ) ) - ) - ) - .andExpect(status().isOk()); + .andExpect(status().isOk()); } @DisplayName("코드의 언어코드 추가") @Test @Transactional - public void createCodeLang() throws Exception{ + public void createCodeLang() throws Exception { String langDivCd = "ko_KR"; @@ -308,54 +300,54 @@ public class ComnCodeControllerTest extends BaseTest { comCodeService.createCode(codeRq); String jsonRQ = """ - { - "groupCd": "%s", - "cdId": "NEW_CODE001", - "langDivCd": "%s", - "cdNm": "신규코드001", - "rm": "비고...." - } - """.formatted(randomNm,langDivCd); + { + "groupCd": "%s", + "cdId": "NEW_CODE001", + "langDivCd": "%s", + "cdNm": "신규코드001", + "rm": "비고...." + } + """.formatted(randomNm, langDivCd); this.mockMvc.perform( - post(this.BASE_URL + "/lang") - .contentType(MediaType.APPLICATION_JSON_VALUE) - .content(jsonRQ) - .accept(MediaType.APPLICATION_JSON_VALUE) - ) - .andDo(print()) - .andDo( - document( - "com/code/lang/create", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름 - preprocessResponse(prettyPrint()), - requestFields( - fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), - fieldWithPath("cdId").type(JsonFieldType.STRING).description("코드 아이디"), - fieldWithPath("langDivCd").type(JsonFieldType.STRING).description("언어코드"), - fieldWithPath("cdNm").type(JsonFieldType.STRING).description("코드이름[언어별]"), - fieldWithPath("rm").type(JsonFieldType.STRING).description("비고") - ), - responseFields( - fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), - fieldWithPath("cdId").type(JsonFieldType.STRING).description("코드 아이디"), - fieldWithPath("langDivCd").type(JsonFieldType.STRING).description("언어코드"), - fieldWithPath("cdNm").type(JsonFieldType.STRING).description("코드이름[언어별]"), - fieldWithPath("rm").type(JsonFieldType.STRING).description("비고"), - fieldWithPath("createUserId").type(JsonFieldType.STRING).description("등록한 유저 아이디"), - fieldWithPath("createDt").type(JsonFieldType.STRING).description("등록일시"), - fieldWithPath("updateUserId").type(JsonFieldType.STRING).description("수정한 유저 아이디"), - fieldWithPath("updateDt").type(JsonFieldType.STRING).description("수정일시") + post(this.BASE_URL + "/lang") + .contentType(MediaType.APPLICATION_JSON_VALUE) + .content(jsonRQ) + .accept(MediaType.APPLICATION_JSON_VALUE) + ) + .andDo(print()) + .andDo( + document( + "com/code/lang/create", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름 + preprocessResponse(prettyPrint()), + requestFields( + fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), + fieldWithPath("cdId").type(JsonFieldType.STRING).description("코드 아이디"), + fieldWithPath("langDivCd").type(JsonFieldType.STRING).description("언어코드"), + fieldWithPath("cdNm").type(JsonFieldType.STRING).description("코드이름[언어별]"), + fieldWithPath("rm").type(JsonFieldType.STRING).description("비고") + ), + responseFields( + fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), + fieldWithPath("cdId").type(JsonFieldType.STRING).description("코드 아이디"), + fieldWithPath("langDivCd").type(JsonFieldType.STRING).description("언어코드"), + fieldWithPath("cdNm").type(JsonFieldType.STRING).description("코드이름[언어별]"), + fieldWithPath("rm").type(JsonFieldType.STRING).description("비고"), + fieldWithPath("createUserId").type(JsonFieldType.STRING).description("등록한 유저 아이디"), + fieldWithPath("createDt").type(JsonFieldType.STRING).description("등록일시"), + fieldWithPath("updateUserId").type(JsonFieldType.STRING).description("수정한 유저 아이디"), + fieldWithPath("updateDt").type(JsonFieldType.STRING).description("수정일시") + ) + ) ) - ) - ) - .andExpect(status().isOk()); + .andExpect(status().isOk()); } @DisplayName("코드 추가") @Test @Transactional - public void createCode() throws Exception{ + public void createCode() throws Exception { String codeNm = "NEW_CODE001"; String randomNm = "NEW_GROUP_" + System.currentTimeMillis(); @@ -365,72 +357,72 @@ public class ComnCodeControllerTest extends BaseTest { comCodeService.createCodeGroup(groupRq); String jsonRQ = """ - { - "groupCd": "%s", - "cdId": "%s", - "sortOrdr": 0, - "addInfoValue": "추가!!", - "useYn": "Y" - } - """.formatted(randomNm, codeNm); + { + "groupCd": "%s", + "cdId": "%s", + "sortOrdr": 0, + "addInfoValue": "추가!!", + "useYn": "Y" + } + """.formatted(randomNm, codeNm); this.mockMvc.perform( - post(this.BASE_URL + "/code") - .contentType(MediaType.APPLICATION_JSON_VALUE) - .content(jsonRQ) - .accept(MediaType.APPLICATION_JSON_VALUE) - ) - .andDo(print()) - .andDo( - document( - "com/code/code/create", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름 - preprocessResponse(prettyPrint()), - requestFields( - fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), - fieldWithPath("cdId").type(JsonFieldType.STRING).description("코드 아이디"), - fieldWithPath("sortOrdr").type(JsonFieldType.NUMBER).description("정렬순서"), - fieldWithPath("addInfoValue").type(JsonFieldType.STRING).description("추가사항"), - fieldWithPath("useYn").type(JsonFieldType.STRING).description("사용여부") - ), - responseFields( - fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), - fieldWithPath("cdId").type(JsonFieldType.STRING).description("코드 아이디"), - fieldWithPath("upperCd").type(JsonFieldType.STRING).description("상위 아이디").optional(), - fieldWithPath("sortOrdr").type(JsonFieldType.NUMBER).description("정렬순서"), - fieldWithPath("addInfoValue").type(JsonFieldType.STRING).description("추가사항"), - fieldWithPath("useYn").type(JsonFieldType.STRING).description("사용여부"), - fieldWithPath("createUserId").type(JsonFieldType.STRING).description("등록한 유저 아이디"), - fieldWithPath("createDt").type(JsonFieldType.STRING).description("등록일시"), - fieldWithPath("updateUserId").type(JsonFieldType.STRING).description("수정한 유저 아이디"), - fieldWithPath("updateDt").type(JsonFieldType.STRING).description("수정일시") + post(this.BASE_URL + "/code") + .contentType(MediaType.APPLICATION_JSON_VALUE) + .content(jsonRQ) + .accept(MediaType.APPLICATION_JSON_VALUE) + ) + .andDo(print()) + .andDo( + document( + "com/code/code/create", // gradle build를 하게 되면 generated-snippets에 만들어질 폴더이름 + preprocessResponse(prettyPrint()), + requestFields( + fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), + fieldWithPath("cdId").type(JsonFieldType.STRING).description("코드 아이디"), + fieldWithPath("sortOrdr").type(JsonFieldType.NUMBER).description("정렬순서"), + fieldWithPath("addInfoValue").type(JsonFieldType.STRING).description("추가사항"), + fieldWithPath("useYn").type(JsonFieldType.STRING).description("사용여부") + ), + responseFields( + fieldWithPath("groupCd").type(JsonFieldType.STRING).description("그룹코드"), + fieldWithPath("cdId").type(JsonFieldType.STRING).description("코드 아이디"), + fieldWithPath("upperCd").type(JsonFieldType.STRING).description("상위 아이디").optional(), + fieldWithPath("sortOrdr").type(JsonFieldType.NUMBER).description("정렬순서"), + fieldWithPath("addInfoValue").type(JsonFieldType.STRING).description("추가사항"), + fieldWithPath("useYn").type(JsonFieldType.STRING).description("사용여부"), + fieldWithPath("createUserId").type(JsonFieldType.STRING).description("등록한 유저 아이디"), + fieldWithPath("createDt").type(JsonFieldType.STRING).description("등록일시"), + fieldWithPath("updateUserId").type(JsonFieldType.STRING).description("수정한 유저 아이디"), + fieldWithPath("updateDt").type(JsonFieldType.STRING).description("수정일시") + ) + ) ) - ) - ) - .andExpect(status().isOk()); + .andExpect(status().isOk()); } @DisplayName("코드그룹 추가") @Test @Transactional - public void createCodeGroup() throws Exception{ + public void createCodeGroup() throws Exception { String randomNm = "NEW_GROUP_" + System.currentTimeMillis(); randomNm = randomNm.substring(0, 20); String jsonRQ = """ - { - "groupCd": "%s", - "siteCd": "KAC", - "groupCdNm": "신규그룹001", - "rm": "비고...." - } - """.formatted(randomNm); + { + "groupCd": "%s", + "siteCd": "KAC", + "groupCdNm": "신규그룹001", + "rm": "비고...." + } + """.formatted(randomNm); this.mockMvc.perform( - post(this.BASE_URL + "/group") - .contentType(MediaType.APPLICATION_JSON_VALUE) - .content(jsonRQ) - .accept(MediaType.APPLICATION_JSON_VALUE) + post(this.BASE_URL + "/group") + .contentType(MediaType.APPLICATION_JSON_VALUE) + .content(jsonRQ) + .accept(MediaType.APPLICATION_JSON_VALUE) ) .andDo(print()) .andDo( @@ -461,7 +453,7 @@ public class ComnCodeControllerTest extends BaseTest { @DisplayName("모든 코드 조회") @Test @Transactional(propagation = Propagation.SUPPORTS) - public void getAllCodeByGroup() throws Exception{ + public void getAllCodeByGroup() throws Exception { String randomNm = "NEW_GROUP_" + System.currentTimeMillis(); randomNm = randomNm.substring(0, 20); @@ -514,7 +506,7 @@ public class ComnCodeControllerTest extends BaseTest { @DisplayName("모든 그룹과 코드 조회") @Test @Transactional - public void getAllGroupCode() throws Exception{ + public void getAllGroupCode() throws Exception { String randomNm = "NEW_GROUP_" + System.currentTimeMillis(); randomNm = randomNm.substring(0, 20); @@ -553,7 +545,7 @@ public class ComnCodeControllerTest extends BaseTest { @DisplayName("모든 그룹 조회") @Test @Transactional - public void getAllGroup() throws Exception{ + public void getAllGroup() throws Exception { String randomNm = "NEW_GROUP_" + System.currentTimeMillis(); randomNm = randomNm.substring(0, 20); diff --git a/build.gradle b/build.gradle index 998a467..33dbfc2 100644 --- a/build.gradle +++ b/build.gradle @@ -15,65 +15,59 @@ buildscript { allprojects { group = "kr.co.palnet" version = "1.0.0" - } -subprojects { - apply plugin: "java" - apply plugin: "java-library" - apply plugin: boot - apply plugin: "io.spring.dependency-management" - apply plugin: "idea" +["app", "data", "web", "common"].each { + def rootDirName = it; + def subProjectDir = new File(projectDir, it) + subProjectDir.eachDir { dir -> + def projectName = ":${it}:${dir.name}" + project(projectName) { - repositories { - mavenCentral() - } + plugins.apply("java") + plugins.apply("java-library") + plugins.apply(boot) + plugins.apply("io.spring.dependency-management") + plugins.apply("idea") - configurations { - developmentOnly - runtimeClasspath { - extendsFrom developmentOnly - } - compileOnly { - extendsFrom annotationProcessor - } - } + repositories { + mavenCentral() + } - dependencies { - developmentOnly("$boot:spring-boot-devtools") - implementation 'com.fasterxml.jackson.core:jackson-annotations:2.15.3' + configurations { + developmentOnly + runtimeClasspath { + extendsFrom developmentOnly + } + compileOnly { + extendsFrom annotationProcessor + } + } - compileOnly lombok - testCompileOnly lombok - annotationProcessor lombok - testAnnotationProcessor lombok + dependencies { + developmentOnly("$boot:spring-boot-devtools") + implementation 'com.fasterxml.jackson.core:jackson-annotations:2.15.3' - testImplementation "$boot:spring-boot-starter-test" - } + compileOnly lombok + testCompileOnly lombok + annotationProcessor lombok + testAnnotationProcessor lombok - test { - useJUnitPlatform() - } -} + testImplementation "$boot:spring-boot-starter-test" + } -["data", "web", "common"].each { - def subProjectDir = new File(projectDir, it) - subProjectDir.eachDir {dir-> - def projectName = ":${it}-${dir.name}" - project(projectName){ - bootJar.enabled(false) - jar.enabled(true) - } - } -} -["app"].each { - def subProjectDir = new File(projectDir, it) - subProjectDir.eachDir {dir-> - def projectName = ":${it}-${dir.name}" - project(projectName){ - bootJar.enabled(true) - jar.enabled(false) + test { + useJUnitPlatform() + } + + if (rootDirName == 'app') { + bootJar.enabled(true) + jar.enabled(false) + } else { + bootJar.enabled(false) + jar.enabled(true) + } } } } diff --git a/common/config-db/build.gradle b/common/config-db/build.gradle new file mode 100644 index 0000000..d634762 --- /dev/null +++ b/common/config-db/build.gradle @@ -0,0 +1,12 @@ + + +dependencies { + // jpa + implementation "$boot:spring-boot-starter-data-jpa" + // querydsl + implementation "com.querydsl:querydsl-jpa:5.0.0:jakarta" + + runtimeOnly "com.mysql:mysql-connector-j" + implementation "org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4:1.16" +} + diff --git a/app/kac-app/src/main/java/kr/co/palnet/kac/app/config/KacJpaConfig.java b/common/config-db/src/main/java/kr/co/palnet/kac/config/db/KacJpaConfig.java similarity index 98% rename from app/kac-app/src/main/java/kr/co/palnet/kac/app/config/KacJpaConfig.java rename to common/config-db/src/main/java/kr/co/palnet/kac/config/db/KacJpaConfig.java index 1cd5d09..55e5414 100644 --- a/app/kac-app/src/main/java/kr/co/palnet/kac/app/config/KacJpaConfig.java +++ b/common/config-db/src/main/java/kr/co/palnet/kac/config/db/KacJpaConfig.java @@ -1,4 +1,4 @@ -package kr.co.palnet.kac.app.config; +package kr.co.palnet.kac.config.db; import org.springframework.boot.autoconfigure.orm.jpa.HibernateProperties; import org.springframework.boot.autoconfigure.orm.jpa.HibernateSettings; diff --git a/app/kac-app/src/main/java/kr/co/palnet/kac/app/config/QueryDslConfig.java b/common/config-db/src/main/java/kr/co/palnet/kac/config/db/QueryDslConfig.java similarity index 92% rename from app/kac-app/src/main/java/kr/co/palnet/kac/app/config/QueryDslConfig.java rename to common/config-db/src/main/java/kr/co/palnet/kac/config/db/QueryDslConfig.java index 4f75b2b..86137cb 100644 --- a/app/kac-app/src/main/java/kr/co/palnet/kac/app/config/QueryDslConfig.java +++ b/common/config-db/src/main/java/kr/co/palnet/kac/config/db/QueryDslConfig.java @@ -1,4 +1,4 @@ -package kr.co.palnet.kac.app.config; +package kr.co.palnet.kac.config.db; import com.querydsl.jpa.impl.JPAQueryFactory; import jakarta.persistence.EntityManager; diff --git a/app/kac-app/src/main/resources/application-database.yml b/common/config-db/src/main/resources/application-db.yml similarity index 59% rename from app/kac-app/src/main/resources/application-database.yml rename to common/config-db/src/main/resources/application-db.yml index 00e5c87..4085bd1 100644 --- a/app/kac-app/src/main/resources/application-database.yml +++ b/common/config-db/src/main/resources/application-db.yml @@ -1,4 +1,9 @@ spring: + jpa: + hibernate: + ddl-auto: none + naming: + physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl datasource: pav-kac: driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy diff --git a/data/cns/build.gradle b/data/cns/build.gradle index 8b8d407..200b0e8 100644 --- a/data/cns/build.gradle +++ b/data/cns/build.gradle @@ -7,9 +7,8 @@ dependencies { annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" - - - testRuntimeOnly("com.h2database:h2") + implementation project(":common:config-db") + testRuntimeOnly "com.h2database:h2" } def querydslDir = layout.buildDirectory.dir("generated/querydsl").get().asFile diff --git a/data/com/build.gradle b/data/com/build.gradle index 8b8d407..200b0e8 100644 --- a/data/com/build.gradle +++ b/data/com/build.gradle @@ -7,9 +7,8 @@ dependencies { annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" - - - testRuntimeOnly("com.h2database:h2") + implementation project(":common:config-db") + testRuntimeOnly "com.h2database:h2" } def querydslDir = layout.buildDirectory.dir("generated/querydsl").get().asFile diff --git a/data/ctr/build.gradle b/data/ctr/build.gradle index 8b8d407..200b0e8 100644 --- a/data/ctr/build.gradle +++ b/data/ctr/build.gradle @@ -7,9 +7,8 @@ dependencies { annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" - - - testRuntimeOnly("com.h2database:h2") + implementation project(":common:config-db") + testRuntimeOnly "com.h2database:h2" } def querydslDir = layout.buildDirectory.dir("generated/querydsl").get().asFile diff --git a/data/flt/build.gradle b/data/flt/build.gradle index 8b8d407..200b0e8 100644 --- a/data/flt/build.gradle +++ b/data/flt/build.gradle @@ -7,9 +7,8 @@ dependencies { annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" - - - testRuntimeOnly("com.h2database:h2") + implementation project(":common:config-db") + testRuntimeOnly "com.h2database:h2" } def querydslDir = layout.buildDirectory.dir("generated/querydsl").get().asFile diff --git a/data/other/build.gradle b/data/other/build.gradle index 8b8d407..200b0e8 100644 --- a/data/other/build.gradle +++ b/data/other/build.gradle @@ -7,9 +7,8 @@ dependencies { annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" - - - testRuntimeOnly("com.h2database:h2") + implementation project(":common:config-db") + testRuntimeOnly "com.h2database:h2" } def querydslDir = layout.buildDirectory.dir("generated/querydsl").get().asFile diff --git a/data/pty/build.gradle b/data/pty/build.gradle index 8b8d407..200b0e8 100644 --- a/data/pty/build.gradle +++ b/data/pty/build.gradle @@ -7,9 +7,8 @@ dependencies { annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" - - - testRuntimeOnly("com.h2database:h2") + implementation project(":common:config-db") + testRuntimeOnly "com.h2database:h2" } def querydslDir = layout.buildDirectory.dir("generated/querydsl").get().asFile diff --git a/settings.gradle b/settings.gradle index 5f95ff8..e66678a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -15,11 +15,11 @@ def baseDir = "kr/co/palnet/kac" if(!gradleFile.exists()){ gradleFile.text = """ - + dependencies { - + } - + """.stripIndent(20) } [ @@ -34,9 +34,10 @@ def baseDir = "kr/co/palnet/kac" } } - def projectName = ":${it}-${subDir.name}"; + def projectName = ":${it}:${subDir.name}"; + include projectName + project(projectName).projectDir = subDir } } - diff --git a/web/api-common/build.gradle b/web/api-common/build.gradle index 35ed820..9316de8 100644 --- a/web/api-common/build.gradle +++ b/web/api-common/build.gradle @@ -2,12 +2,12 @@ dependencies { implementation("$boot:spring-boot-starter-web") - implementation "$boot:spring-boot-starter-data-jpa" - implementation "com.querydsl:querydsl-jpa:5.0.0:jakarta" - implementation project(path: ':common-core') + + // for paging +// implementation("org.springframework.data:spring-data-commons") compileOnly 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0' - implementation project(":data-com") - implementation project(":common-core") + implementation project(":data:com") + implementation project(":common:core") } diff --git a/web/security/build.gradle b/web/security/build.gradle index b0a0fcb..b18975c 100644 --- a/web/security/build.gradle +++ b/web/security/build.gradle @@ -8,7 +8,7 @@ dependencies { implementation "$boot:spring-boot-starter-data-jpa" implementation "com.querydsl:querydsl-jpa:5.0.0:jakarta" - implementation project(":common-util") - implementation project(":data-pty") + implementation project(":common:util") + implementation project(":data:pty") }