From 3b0001618f96d3e3cedc88cc9911ab4ddbd1b418 Mon Sep 17 00:00:00 2001 From: hylee Date: Mon, 15 May 2023 14:23:33 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20restTemplate=20=EB=AA=A8=EB=93=88?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../itn/mjonApi/cmn/apiServer/ApiService.java | 44 +++++++++++++++++ .../com/itn/mjonApi/cmn/msg/MjonResponse.java | 19 +++++++ .../send/service/impl/SendServiceImpl.java | 43 ++++++++-------- .../mjon/api/send/web/SendRestController.java | 49 ------------------- src/main/resources/application-dev.properties | 2 +- .../resources/application-prod.properties | 3 +- 6 files changed, 86 insertions(+), 74 deletions(-) create mode 100644 src/main/java/com/itn/mjonApi/cmn/apiServer/ApiService.java diff --git a/src/main/java/com/itn/mjonApi/cmn/apiServer/ApiService.java b/src/main/java/com/itn/mjonApi/cmn/apiServer/ApiService.java new file mode 100644 index 0000000..5dcab9f --- /dev/null +++ b/src/main/java/com/itn/mjonApi/cmn/apiServer/ApiService.java @@ -0,0 +1,44 @@ +package com.itn.mjonApi.cmn.apiServer; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.itn.mjonApi.cmn.msg.MjonResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +/** + * packageName : com.itn.mjonApi.cmn.apiServer + * fileName : ApiService + * author : hylee + * date : 2023-05-15 + * description : + * =========================================================== + * DATE AUTHOR NOTE + * ----------------------------------------------------------- + * 2023-05-15 hylee 최초 생성 + */ +@Service +public class ApiService { + + private RestTemplate restTemplate; + + @Autowired + public ApiService(RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } + + public MjonResponse postForEntity(String url, Object request, Class responseType) throws JsonProcessingException { + ResponseEntity spamChkEntity = (ResponseEntity) restTemplate.postForEntity( + url + , request + , responseType + ); + + MjonResponse spamResponse = MjonResponse.getMjonResponse(spamChkEntity); + + + return spamResponse; + } + +} diff --git a/src/main/java/com/itn/mjonApi/cmn/msg/MjonResponse.java b/src/main/java/com/itn/mjonApi/cmn/msg/MjonResponse.java index db18a40..1114f60 100644 --- a/src/main/java/com/itn/mjonApi/cmn/msg/MjonResponse.java +++ b/src/main/java/com/itn/mjonApi/cmn/msg/MjonResponse.java @@ -1,7 +1,10 @@ package com.itn.mjonApi.cmn.msg; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import lombok.Getter; import lombok.Setter; +import org.springframework.http.ResponseEntity; /** * packageName : com.itn.mjonApi.cmn.msg @@ -24,4 +27,20 @@ public class MjonResponse { private String resultBlockSts; // 수신거부 갯수 private String afterCash; + + + + /** + * + * @param stringResponseEntity + * @return ResponseEntity vo convert + * @throws JsonProcessingException + */ + public static MjonResponse getMjonResponse(ResponseEntity stringResponseEntity) throws JsonProcessingException { + ObjectMapper objectMapper = new ObjectMapper(); + + MjonResponse mjonResponse = objectMapper.readValue(stringResponseEntity.getBody(), MjonResponse.class); + return mjonResponse; + } + } diff --git a/src/main/java/com/itn/mjonApi/mjon/api/send/service/impl/SendServiceImpl.java b/src/main/java/com/itn/mjonApi/mjon/api/send/service/impl/SendServiceImpl.java index e3dc27a..387ef13 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/send/service/impl/SendServiceImpl.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/send/service/impl/SendServiceImpl.java @@ -1,48 +1,47 @@ package com.itn.mjonApi.mjon.api.send.service.impl; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.itn.mjonApi.cmn.apiServer.ApiService; import com.itn.mjonApi.cmn.msg.MjonResponse; import com.itn.mjonApi.mjon.api.send.mapper.domain.MjonMsgVO; import com.itn.mjonApi.mjon.api.send.service.SendService; import lombok.extern.slf4j.Slf4j; -import org.springframework.http.ResponseEntity; +import org.apache.catalina.connector.Response; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.web.client.RestTemplate; + @Slf4j @Service public class SendServiceImpl implements SendService { - private final RestTemplate restTemplate; + private ApiService apiService; - public SendServiceImpl(RestTemplate restTemplate) { - this.restTemplate = restTemplate; + @Autowired + public SendServiceImpl(ApiService apiService) { + this.apiService = apiService; } + @Override public MjonResponse sendMsgData(MjonMsgVO mjonMsgVO) throws Exception { - ResponseEntity stringResponseEntity = restTemplate.postForEntity( + // 스팸체크 하는 부분 + MjonResponse spamChkEntity = apiService.postForEntity( + "/web/user/login/selectSpamTxtChkAjax.do" + , mjonMsgVO + , String.class + ); + + // 문자 전송하는 부분 + MjonResponse munjaSendResponse = apiService.postForEntity( "/web/user/login/sendMsgDataAjax.do" , mjonMsgVO , String.class ); - MjonResponse mjonResponse = getMjonResponse(stringResponseEntity); - return mjonResponse; + + + return spamChkEntity; } - /** - * - * @param stringResponseEntity - * @return ResponseEntity vo convert - * @throws JsonProcessingException - */ - private static MjonResponse getMjonResponse(ResponseEntity stringResponseEntity) throws JsonProcessingException { - ObjectMapper objectMapper = new ObjectMapper(); - - MjonResponse mjonResponse = objectMapper.readValue(stringResponseEntity.getBody(), MjonResponse.class); - return mjonResponse; - } } diff --git a/src/main/java/com/itn/mjonApi/mjon/api/send/web/SendRestController.java b/src/main/java/com/itn/mjonApi/mjon/api/send/web/SendRestController.java index 423ce8c..8b97eda 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/send/web/SendRestController.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/send/web/SendRestController.java @@ -10,7 +10,6 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; -import org.springframework.web.servlet.ModelAndView; import java.io.IOException; @@ -51,7 +50,6 @@ public class SendRestController { @PostMapping("/api/sendTest") public MjonResponse sendTest(MjonMsgVO mjonMsgVO) throws Exception { - return sendService.sendMsgData(mjonMsgVO); } @@ -83,57 +81,10 @@ public class SendRestController { } catch (IOException e) { e.printStackTrace(); } - return mjonResponse; - - - } - /** - * - * @param mjonMsgVO - * @Discription 리턴 데이터 테스트 - * @return - */ - @PostMapping("/api/returnTest") - public Object returnTest(MjonMsgVO mjonMsgVO) throws IOException { - - System.out.println("test !!!"); - - - - - // API에 요청할 URL - String apiUrl = "http://localhost:8080/web/user/login/returnTest.do"; - - // RestTemplate 객체 생성 - RestTemplate restTemplate = new RestTemplate(); - - // API로부터 ResponseEntity 응답 받기 - ResponseEntity response = restTemplate.getForEntity(apiUrl, ModelAndView.class); - - // ModelAndView 추출 및 데이터 출력 - ModelAndView modelAndView = response.getBody(); - System.out.println("View Name: " + modelAndView.getViewName()); - System.out.println("Model: " + modelAndView.getModel()); - - -// ResponseEntity objectResponseEntity = restTemplate.postForEntity( -// "/web/user/login/returnTest.do" -// , mjonMsgVO -// , Object.class -// ); - -// System.out.println("objectResponseEntity :: " + objectResponseEntity); - - return modelAndView; - } - - - - diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties index 3eefb21..ff78813 100644 --- a/src/main/resources/application-dev.properties +++ b/src/main/resources/application-dev.properties @@ -14,4 +14,4 @@ server.port=8088 logging.level.root=info -api.root.url=http://localhost:8080 \ No newline at end of file +api.root.url=http://192.168.0.125:8095/ \ No newline at end of file diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index 1b4fd3a..cbba34f 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -10,9 +10,8 @@ spring.datasource.url=jdbc:log4jdbc:mysql://192.168.0.125:3306/mjon?serverTimezo spring.datasource.username=mjonUr spring.datasource.password=mjon!@#$ - server.port=9100 logging.level.root=info -api.root.url=http://localhost:8080 +api.root.url=http://192.168.0.125:8095/