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 @@
+
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
-
-
-
-
-