[ java ] Spring Boot, 용도별 ExceptionController를 1개로 병합(파일 생성)

JooKit 주킷 2020. 12. 28. 22:03
목차 접기
728x90
반응형

용도별 ExceptionController를 1개로 병합(파일 생성)

용도별 ExceptionController 3개(ExceptionJsonMessageController,
ExceptionParameterMissingController, ExceptionRequestMethodController)의
기능 중복으로 ExceptionController를 1개로 최소화.
중복되는 코드는 Utils에 구현.

@RestControllerAdvice
public class ExceptionController {

    JsonObject jsonResult = new JsonObject();

    @ExceptionHandler(MissingServletRequestParameterException.class)
    protected ResponseEntity<String> jsonMessageReturn(MissingServletRequestParameterException e) 
    {

        this.jsonResult.addProperty("result", false);
        this.jsonResult.addProperty("error_message", "요청된 파라미터가 올바르지 않습니다");

        return Utils.getControllerJson(this.jsonResult.toString());
    }

    @ExceptionHandler(ExceptionRequestMethod.class)
    protected ResponseEntity<String> jsonMessageReturn(ExceptionRequestMethod e)
    {
        return Utils.getControllerJson(e);
    }



    @ExceptionHandler(ExceptionJsonMessage.class)
    protected ResponseEntity<String> jsonMessageReturn(ExceptionJsonMessage e) 
    {
        return Utils.getControllerJson(e);
    }


}

Utils

public static ResponseEntity<String> getControllerJson(Object e) {

        HttpHeaders hearders = new HttpHeaders();
        hearders.setContentType(MediaType.APPLICATION_JSON);

        return new ResponseEntity<String>(e.toString(), hearders, HttpStatus.OK);
    }
728x90
반응형
LIST