복붙노트

[SPRING] RESTful Spring MVC 컨트롤러에서 유효성 검사 오류 및 예외를 처리하는 방법은 무엇입니까?

SPRING

RESTful Spring MVC 컨트롤러에서 유효성 검사 오류 및 예외를 처리하는 방법은 무엇입니까?

예를 들어,이 제어기 조치 메소드에서 유효성 검증 오류 및 가능한 예외를 처리하는 방법 :

@RequestMapping(method = POST)
@ResponseBody
public FooDto create(@Valid FooDTO fooDto, BindingResult bindingResult) {
    if (bindingResult.hasErrors()) {
        return null; // what to do here?
                     // how to let the client know something has gone wrong?
    } else {
        fooDao.insertFoo(fooDto); // What to do if an exception gets thrown here?
                                  // What to send back to the client?
        return fooDto;
    }
}

해결법

  1. ==============================

    1.오류가있는 경우 예외를 throw 한 다음 @ExceptionHandler를 사용하여 다른 메소드에 주석을 달고 예외를 처리하고 적절한 응답을 렌더링하십시오.

    오류가있는 경우 예외를 throw 한 다음 @ExceptionHandler를 사용하여 다른 메소드에 주석을 달고 예외를 처리하고 적절한 응답을 렌더링하십시오.

  2. ==============================

    2.

    @RequestMapping(method = POST)
    @ResponseBody
    public FooDto create(@Valid FooDTO fooDto) {
    //Do my business logic here
        return fooDto;
    
    }
    

    n 예외 핸들러를 작성하십시오.

    @ExceptionHandler( MethodArgumentNotValidException.class)
    @ResponseBody
    @ResponseStatus(value = org.springframework.http.HttpStatus.BAD_REQUEST)
    protected CustomExceptionResponse handleDMSRESTException(MethodArgumentNotValidException objException)
    {
    
        return formatException(objException);
    }
    

    이것이 내가 따르는 올바른 접근 방법인지 모르겠습니다. 이 문제에 대해 무엇을했는지 알려 주시면 감사하겠습니다.

  3. from https://stackoverflow.com/questions/9245487/how-to-handle-validation-errors-and-exceptions-in-a-restful-spring-mvc-controlle by cc-by-sa and MIT license