스프링

스프링 파라미터 처리 과정

개발자 포비 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 전송