Table of Contents
Spring Boot – @Valid 관련 Exception
BindException 과 HttpMessageNotReadableException, MethodArgumentNotValidException 이 언제 발생하는지 정리합니다.
@RequestBody
json
으로 값을 받을 때 발생합니다.
@RestController
@RequiredArgsConstructor
@RequestMapping("/v1/login")
public class LoginController {
@PostMapping("/")
public ResponseEntity<?> login(@Valid @RequestBody LoginRequestDto dto) {
return service.login(dto);
}
}
HttpMessageNotReadableException
Json 형식에 오류가 있는 경우 발생합니다.
MethodArgumentNotValidException
Json 파싱은 제대로 이루어진 후 @Valid 단계에서 오류가 있는 경우 발생합니다.
BindException
@ModelAttribute 로 값을 받을 때 오류가 발생하면 BindException 이 발생합니다.
<form />
으로 값을 받을 때 발생합니다.
@Controller
@RequiredArgsConstructor
public class LoginController {
@PostMapping("/login/doLogin")
public String login(HttpServletResponse response, @Valid LoginRequestDto loginRequestDto) throws IOException {
LoginResponseDto loginResponseDto = service.login(loginRequestDto);
setCookies(response, loginResponseDto);
gotoIndexPage(response, loginResponseDto);
return null;
}
}