Commit e71f3ea3 authored by 오창용's avatar 오창용
parent 1d0560db
......@@ -32,6 +32,9 @@ public class DefaultConnectService implements ConnectionService{
private final HolidayRepository holidayRepository;
private final OmsLogger oms;
private final ObjectMapper mapper = new ObjectMapper();
// 이 메소드는 CommonExeption을 던지는데, 이 메소드를 호출하는 부분에서는 예외처리를 안해주는것같아요
// 그렇다면 던지기보다는 책임을지고 예외처리를 하는게 어떨까 싶습니다
@Override
public void connect(Response connect)throws CommonException {
call.debug("\n---- Start to Connection And Convert----");
......@@ -46,6 +49,7 @@ public class DefaultConnectService implements ConnectionService{
if(totalCount > 1){
HolidaRootResponse resBody = mapper.readValue(map.get("anotherDaybody"), HolidaRootResponse.class);
// 메시지 체인2
anotherDayProcess(resBody.getResponse().getResBody().getItems().getItem(), resBody.getResponse().getResBody().getTotalCount());
}else if(totalCount == 1){
onlyDayProcess(map.get("oneDayBody"));
......@@ -86,6 +90,7 @@ public class DefaultConnectService implements ConnectionService{
* anotherDaybody : 공유일이 많을때 사용하기 위함
* itmeMap : 공유일이 없는 경우를 확인하기 위함
* */
// 원시타입만 사용해서 보기가 힘든것같습니다 클래스로 래핑하면 좋을것같습니다
private Map<String, String> segregate(String oneDayBody) {
Map<String, String> buildMap = new HashMap<>();
try {
......@@ -102,6 +107,7 @@ public class DefaultConnectService implements ConnectionService{
throw new CommonException(e.getMessage());
}
}
// is 접두사는 boolean 리턴 메소드에 주로 쓰이는것으로 압니다. validateResponse 정도가 적당할것같습니다.
private void isnull(Response connect) {
if(JsonUtil.isNull(connect)){
call.info("Failed Connect to External Server.");
......
......@@ -17,6 +17,7 @@ public class ResponseService {
private final CallLogger call;
private final String JOB_NAME = this.getClass().getSimpleName();
private final DefaultConnectService defaultconnectService;
// 접근제어자가 없음
String line = null;
public String responseXmlToString(Response response) {
StringBuilder builder = new StringBuilder();
......@@ -32,6 +33,7 @@ public class ResponseService {
} catch (IOException ex){
call.error("Exceprion point {} , massge ",JOB_NAME, ex.getMessage());
// CommonExeption을 던져도 받아서 처리해주는 부분은 없는것같아요
throw new CommonException(ExceptionType.RESPONE_CAUSE_EXCEPTION);
}
}
......
......@@ -25,18 +25,26 @@ public class SmpService {
private final SmpRepository smpRepository;
private final ResponseService responseService;
private final SmpEnterFeignClient smpEnterFeignClient;
// 메소드명의 접두사가 여러개이고(to,Do,Get), Get과 Insert 두가지의 동작을 명시하고있어서 역할을 명확히 알기가 힘듭니다
public int toDoGetSmpDataAndInsert(int i, String serviceKey) {
;
; // ???
ArrayList<SmpDTO> smpList = getRresponseItme(i, serviceKey);
return sendSmp(smpList, i);
}
//관심사 분리 실패 ....
// 메소드명 오타 있음
private ArrayList<SmpDTO> getRresponseItme(int area, String serviceKeys) {
try {
JAXBContext jaxbContext = JAXBContext.newInstance(SmpRoot.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
SmpRoot smpResponse = (SmpRoot) unmarshaller.unmarshal( new StringReader(responseService.responseXmlToString(smpEnterFeignClient.requestConsumeDataByAll(area, serviceKeys))));
// 언마샬링 하는 부분과 response 받아오는 부분을 분리해보는건 어떨까요?
SmpRoot smpResponse = (SmpRoot) unmarshaller.unmarshal( new StringReader(
responseService.responseXmlToString(smpEnterFeignClient.requestConsumeDataByAll(area, serviceKeys))));
// 메시지 체인에 해당되는 부분인것 같습니다.
// 해결방법으로 Hide Delegate를 참고하면 좋을것 같습니다.
return smpResponse.getBody().getItems().getItem();
} catch (JAXBException e) {
call.error("ResponseService class in method explorerSnd JAXBException : {}", e.getMessage());
......@@ -47,6 +55,7 @@ public class SmpService {
private int sendSmp(ArrayList<SmpDTO> smpList, int areaCd) {
int insertCount = 0;
// forEach 문으로 바꾸면 좀더 보기 좋을것같습니다
for (int i = 0; i < smpList.size(); ++i){
insertCount += insertCall(buildSmpDto( smpList.get(i)));
}
......@@ -55,6 +64,7 @@ public class SmpService {
}
private SmpDTO buildSmpDto(SmpDTO smpDTO) {
// 잘못된 빌더패턴 사용법인것같습니다.
return new SmpDTO().builder()
.idx(smpDTO.getIdx())
.areaCd(smpDTO.getAreaCd())
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment