diff --git a/mens-api/pom.xml b/mens-api/pom.xml index 61a54f4..95d87c4 100644 --- a/mens-api/pom.xml +++ b/mens-api/pom.xml @@ -79,11 +79,10 @@ * static/**/* egovframework/**/* + config/application-${env}.yml config/application.yml config/application-app.yml - config/application-ens* - config/application-jpa.yml - config/application-${env}.yml + config/application-ens.yml true @@ -130,7 +129,16 @@ + + + + + + + + + + - diff --git a/mens-api/src/main/java/kr/xit/ens/kakao/web/AsyncKkopayEltrcDocController.java b/mens-api/src/main/java/kr/xit/ens/kakao/web/AsyncKkopayEltrcDocController.java index be6f8fe..8f9e2be 100644 --- a/mens-api/src/main/java/kr/xit/ens/kakao/web/AsyncKkopayEltrcDocController.java +++ b/mens-api/src/main/java/kr/xit/ens/kakao/web/AsyncKkopayEltrcDocController.java @@ -1,5 +1,11 @@ package kr.xit.ens.kakao.web; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.ExampleObject; @@ -14,11 +20,6 @@ import kr.xit.core.model.IApiResponse; import kr.xit.ens.kakao.service.IAsyncKkopayEltrcDocService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; /** *
@@ -49,7 +50,7 @@ public class AsyncKkopayEltrcDocController {
      * -.이용기관 서버에서 전자문서 서버로 문서발송 처리를 요청합니다.
      * 
* @param reqDTO KkopayDocDTO.SendRequest - * @return ApiResponseDTO + * @return ApiResponseDTO{@literal } */ @io.swagger.v3.oas.annotations.parameters.RequestBody(required = true, content = { @Content(mediaType = "application/json", examples = { diff --git a/mens-batch/README.md b/mens-batch/README.md index 9e42de9..acb2873 100644 --- a/mens-batch/README.md +++ b/mens-batch/README.md @@ -1,16 +1,19 @@ - ### API 가이드 + [카카오페이 문서발송 단건](./document/카카오페이내문서함_1.문서발송(단건).pdf) [카카오페이 문서발송 대량](./document/카카오페이내문서함_1.문서발송(대량).pdf) [카카오페이 문서발송 네트워크가이드](./document/카카오페이내문서함_1.네트워크가이드.pdf) ### swagger + [API URL](http://localhost:8081/swagger-ui.html) [Front URL](http://localhost:8080/swagger-ui.html) [Front test page](http://localhost:8080/api/kakaopay/test) ### API 결과 수신 + * 정상 수신 + ```java public class ApiResponseDTO implements Serializable { private static final String FAIL_STATUS = "fail"; @@ -36,7 +39,9 @@ public class ApiResponseDTO implements Serializable { private int count; } ``` + * 정상 수신 + ```json { "success": true, @@ -58,7 +63,9 @@ public class ApiResponseDTO implements Serializable { "paginationInfo": null } ``` + * 에러 수신 + ```json { "success": false, @@ -70,44 +77,49 @@ public class ApiResponseDTO implements Serializable { "paginationInfo": null } ``` + * API 호출 결과가 서버등(네트웍장애)의 장애인 경우를 제외 하고 - 예외로 return 되는 경우는 없다(발생시 공통팀에 반드시 알려 줄 것) + 예외로 return 되는 경우는 없다(발생시 공통팀에 반드시 알려 줄 것) + ```js $.ajax({ - url: url, - type: method, - contentType: "application/json; charset=utf-8", - dataType: "json", - data: JSON.stringify(data), - beforeSend: (xhr) => { - //xhr.setRequestHeader(header, token); - $("#loading").show(); - - }, - success: function (res, textStatus) { - console.log( JSON.stringify(res)); - if(res.success){ - //정상 응답 - $("#resData").text(res.data) - }else{ - //에러 응답 - $("#errData").text(JSON.stringify(res)); - } - }, - error : function(data) { - // 여기로 오는 경우 공통팀에 알려 주세요 - alert("점검필요-error로 return", data.responseText); - }, - complete: () => { - $("#loading").hide(); + url: url, + type: method, + contentType: "application/json; charset=utf-8", + dataType: "json", + data: JSON.stringify(data), + beforeSend: (xhr) => { + //xhr.setRequestHeader(header, token); + $("#loading").show(); + + }, + success: function (res, textStatus) { + console.log(JSON.stringify(res)); + if (res.success) { + //정상 응답 + $("#resData").text(res.data) + } else { + //에러 응답 + $("#errData").text(JSON.stringify(res)); } - }); + }, + error: function (data) { + // 여기로 오는 경우 공통팀에 알려 주세요 + alert("점검필요-error로 return", data.responseText); + }, + complete: () => { + $("#loading").hide(); + } +}); ``` + ### API(Restful call) validation + * Controller 단에서 @Validated 사용으로 처리 가능 * But, 이경우 API 로그를 남기기 위해 Service 단에서 체크 하도록 컨트롤러 단에서는 유효성 체크 skip ### spring validation + ```text @Valid는 Java, @Validated는 Spring에서 지원하는 어노테이션 @Validated는 @Valid의 기능을 포함하고, 유효성을 검토할 그룹을 지정할 수 있는 기능이 추가됨 @@ -120,11 +132,11 @@ public class ApiResponseDTO implements Serializable { @NotBlank // null, "", " " 모두 허용하지 않습니다. @Email // 이메일 형식을 검사합니다. 다만 ""의 경우를 통과 시킵니다 -@Pattern(regexp = ) // 정규식을 검사할 때 사용됩니다. -@Size(min=, max=) // 길이를 제한할 때 사용됩니다. +@Pattern(regexp =) // 정규식을 검사할 때 사용됩니다. +@Size(min =, max =) // 길이를 제한할 때 사용됩니다. -@Max(value = ) // value 이하의 값을 받을 때 사용됩니다. -@Min(value = ) // value 이상의 값을 받을 때 사용됩니다. +@Max(value =) // value 이하의 값을 받을 때 사용됩니다. +@Min(value =) // value 이상의 값을 받을 때 사용됩니다. @Positive // 값을 양수로 제한합니다. @PositiveOrZero // 값을 양수와 0만 가능하도록 제한합니다. @@ -138,7 +150,9 @@ public class ApiResponseDTO implements Serializable { @AssertFalse // false 여부, null은 체크하지 않습니다. @AssertTrue // true 여부, null은 체크하지 않습니다. ``` + ### intellij devtools 활성 + ```text 1. IntelliJ - Preferencs… 2. 컴파일러 - build project automatically(프로젝트 자동 빌드) 체크 @@ -150,7 +164,9 @@ public class ApiResponseDTO implements Serializable { Modfy Options > On Update Action > Update Resources ``` + ### ens-api 배포 및 run : profile에 따라 local|dev|prod + ```shell # jdk : azul-17.0.1 # 프로젝트 root 폴더로 이동 : ens-parent @@ -163,9 +179,11 @@ $ c:\tools\java\azul-17.0.1\java -jar -Dspring.profiles.active=local .\ens-api.j # mvn 명령어 설명 # -pl [모듈명] : 모듈명의 프로젝트만 빌드 # -am : 의존성 있는 프로젝트 함께 빌드 - C가 A를 디펜던시로 가지고 있으며 C를 빌드하면 A -> C 순으로 빌드 -$ mvnw clean package -pl ens-api -am -P local +$ mvnw clean package -pl mens-api -am -P local # -amd : 의존성 있는 타 프로젝트 빌드 - C가 A를 디펜던시로 가지고 있는 경우 A를 빌드 하면 A -> C 순으로 빌드 $ mvnw clean package -pl egov-core -amd -P local ``` + ### 스프링 배치 DB schema + [mysql DDL 스크립트](./document/batch-schema-mysql.sql) diff --git a/mens-batch/pom.xml b/mens-batch/pom.xml index 9ad0696..a40e99b 100644 --- a/mens-batch/pom.xml +++ b/mens-batch/pom.xml @@ -78,6 +78,10 @@ spring-boot-starter-jta-atomikos + + + + @@ -95,7 +99,6 @@ config/application.yml config/application-app.yml config/application-ens.yml - config/application-jpa.yml config/application-${env}.yml true diff --git a/mens-core/pom.xml b/mens-core/pom.xml index b402d01..b3c2f1f 100644 --- a/mens-core/pom.xml +++ b/mens-core/pom.xml @@ -460,18 +460,6 @@ ${basedir}/target ${project.name} - - - - - com.github.wvengen - proguard-maven-plugin - ${proguard-plugin-version} - - - - - org.apache.maven.plugins @@ -482,70 +470,6 @@ - - - - - diff --git a/mens-core/src/main/java/kr/xit/core/service/AbstractService.java b/mens-core/src/main/java/kr/xit/core/service/AbstractService.java index 4bf836c..3966255 100644 --- a/mens-core/src/main/java/kr/xit/core/service/AbstractService.java +++ b/mens-core/src/main/java/kr/xit/core/service/AbstractService.java @@ -1,9 +1,11 @@ package kr.xit.core.service; import javax.annotation.Resource; -import kr.xit.core.spring.util.MessageUtil; + import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl; +import kr.xit.core.spring.util.MessageUtil; + /** * org.egovframe.cloud.common.service.AbstractService *

@@ -14,7 +16,7 @@ import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl; * @version 1.0 * *

- * << 개정이력(Modification Information) >>
+ * 개정이력(Modification Information)
  *
  *     수정일        수정자           수정내용
  *  ----------    --------    ---------------------------
diff --git a/mens-core/src/main/resources/spy.properties b/mens-core/src/main/resources/spy.properties
index 22b7f15..34e1fe6 100644
--- a/mens-core/src/main/resources/spy.properties
+++ b/mens-core/src/main/resources/spy.properties
@@ -3,8 +3,6 @@
 #logMessageFormat
 #filter
 #exclude
-
-
 #################################################################
 # P6Spy Options File                                            #
 # See documentation for detailed instructions                   #
@@ -34,7 +32,7 @@
 # using a JDBC driver that does not implement the JDBC 4.0 API
 # (specifically automatic registration).
 #driverlist=org.mariadb.jdbc.Driver,com.p6spy.engine.spy.P6SpyDriver
-driverlist=org.mariadb.jdbc.Driver
+driverlist=org.mariadb.jdbc.Driver,oracle.jdbc.OracleDriver
 # for flushing per statement
 # (default is false)
 #autoflush=false
diff --git a/pom.xml b/pom.xml
index c3a8dfd..c4a5f2e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -164,6 +164,7 @@
                     
 
                     
+                        ${maven.compiler.source}
                         
                         none
                         128m
@@ -189,85 +190,37 @@
                         ${project.build.directory}
                         xit.core.init.custom.*
                         ${java.home}/bin/javadoc
+                        -Xdoclint:none
+                        false
+                    
+                
+
+                
+                
+                    org.apache.maven.plugins
+                    maven-jxr-plugin
+                    
+                        ${project.encoding}
+                        ${project.encoding}
+                        true
+                        apidocs
+                        xref
+                        ${project.name} - Source Code
                     
+                    
+                        
+                            generate-xref
+                            site
+                            
+                                jxr
+                            
+                        
+                    
                 
             
         
-
-        
-            
-                org.apache.maven.plugins
-                maven-source-plugin
-            
-
-            
-                org.apache.maven.plugins
-                maven-javadoc-plugin
-            
-        
     
 
-    
-        
-        
-            
-                org.apache.maven.plugins
-                maven-project-info-reports-plugin
-                
-                
-                    
-                        sunlink
-                        
-                            javadoc
-                        
-                        true
-                        
-                            
-                                https://docs.oracle.com/javase/8/docs/api/
-                            
-                        
-                    
-                
-            
-            
-            
-            
-            
-                org.apache.maven.plugins
-                maven-javadoc-plugin
-            
-            
-            
-                org.apache.maven.plugins
-                maven-jxr-plugin
-                
-                    ${project.encoding}
-                    ${project.encoding}
-                    true
-                    apidocs
-                
-            
-        
-    
-