반응형

ArgumentResolver 2

4편. ArgumentResolver와 HttpMessageConverter - 파라미터는 어떻게 주입되는가?

Spring Web MVC의 Controller 메서드를 보면, 요청 데이터가 별다른 코드 없이도 메서드 파라미터로 자연스럽게 전달되는 것처럼 보인다.@PathVariable, @RequestParam, @RequestBody 같은 어노테이션이 자동으로 동작하는 이유는, Spring Web 내부에서 ArgumentResolver와 HttpMessageConverter가 역할을 나누어 처리하기 때문이다.이 글에서는 요청 데이터가 Controller 메서드의 파라미터로 변환되는 전체 과정을 두 컴포넌트 중심으로 정리한다.1. Controller 메서드 파라미터는 누가 채우는가?HandlerAdapter가 Controller를 실행할 때, 가장 먼저 해결해야 할 문제는 다음이다.이 메서드의 파라미터들은 어디서..

[Spring 공식문서 정리] 15. ArgumentResolver – 컨트롤러 파라미터는 어떻게 만들어질까?

14편에서는 HandlerAdapter가 HandlerMapping이 선택한 컨트롤러를 실제로 실행하기 위한 “실행 전략”이라는 점을 살펴봤습니다.이번 글에서는 컨트롤러 실행 과정에서 가장 많은 개발자가 궁금해하는 질문을 다뤄보겠습니다.@RequestParam, @PathVariable, @RequestBody 같은 값들은 도대체 언제, 어디서 만들어질까? 이 질문에 대한 답이 바로 ArgumentResolver입니다.1. ArgumentResolver의 역할ArgumentResolver의 공식적인 이름은HandlerMethodArgumentResolver 입니다.이 인터페이스의 역할은 단순합니다.컨트롤러 메서드의 파라미터 하나를 실제 값으로 변환해주는 역할 즉, 컨트롤러 메서드의 각 파라미터마다이 파라..

반응형