Spring
검증2 - Validation : HTTP 메시지 컨버터
sami355
2022. 9. 1. 19:02
인프런 김영한님의 스프링 mvc2편을 보고 정리한 글입니다.
무엇을 배웠나요?
참고 @ModelAttribute는 HTTP 요청 파라미터(URL 쿼리 스트링, POST Form)를 다룰 때 사용한다. @RequestBody는 HTTP Body의 데이터를 객체로 변환할 때 사용한다. 주로 API JSON 요청을 다룰 때 사용한다.
- @RequestBody의 경우 주로 api를 통해 데이터를 주고 받는데 이때 다음과 같은 경우로 나뉜다.
- 성공 요청 : 성공
- 실패 요청 : JSON을 객체로 생성하는 것 자체가 실패함
- 검증 오류 요청 : JSON을 객체로 생성하는 것은 성공했고, 검증에서 실패함
- 만약 HttpMessageConverter에서 요청 JSON을 도메인 객체로 생성하는데 실패하면 컨트롤러 자체가 호출되지 않고 예외가 발생한다. 이떄 컨트롤러가 호출되지 않기 때문에 Validator도 실행 되지 않는다.
- @ModelAttribute vs @RequestBody
- @ModelAttribute 는 객체의 필드단위로 세밀하게 적용이 가능하다.
- @RequestBody 는 전체 객체 단위로 적용 된다.