스프링
스프링 파라미터 처리 과정
개발자 포비
2024. 12. 12. 21:27
Spring MVC 요청 처리 및 Validation 흐름
1. 클라이언트 요청 처리
- 클라이언트의 HTTP Request 전송 (JSON/폼 데이터/쿼리 파라미터)
- DispatcherServlet이 요청 수신
- HandlerMapping을 통해 적절한 HandlerMethod(컨트롤러 메서드) 검색
- DispatcherServlet이 HandlerAdapter에게 핸들러 실행 요청
2. ArgumentResolver 처리
- HandlerAdapter가 메서드 파라미터에 맞는 ArgumentResolver 선택
- ArgumentResolver의 파라미터 종류별 처리:
@RequestBody
: JSON -> 객체 변환 (Jackson ObjectMapper)@ModelAttribute
: 요청 파라미터 -> 객체 변환 (DataBinder)
- Converter를 통한 실제 데이터 변환 수행
3. Validation
- ArgumentResolver가
@Valid
/@Validated
확인 - Validator에게 검증 작업 요청
- 객체의 필드별 제약조건 검증 수행
- 검증 결과를 BindingResult에 저장
4. 컨트롤러 실행
- ArgumentResolver가 변환된 객체와 BindingResult 반환
- HandlerAdapter가 컨트롤러 메서드 실행
- 처리 결과를 DispatcherServlet으로 반환
- 클라이언트에게 HTTP Response 전송