인프런 커뮤니티 질문&답변
Query Parameter 방식에서의 ArgumentResolver 동작 원리에 대해
작성
·
344
·
수정됨
0
localhost.com:8080/hello?username=kim&age=20
위와 같은 get 방식의 요청이 들어왔을 때,
@GetMapping("/hello")
public void foo(HelloData helloData) {
}제가 이해한 내용을 바탕으로 설명해보겠습니다.
컨트롤러에게 HelloData 객체를 만들어 전달해주는 것은 ArgumentResolver 입니다. 만일 HTTP 메시지를 통해 username과 age가 전달되었다면, HelloData 객체를 만들기 위해 HTTP 메시지 컨버터를 사용하였을 것입니다.
마찬가지로 Query Parameter 방식으로 값이 전달되었을 때, HelloData 객체를 만드는 주체도 ArgumentResolver 인가요? 이 때는 HTTP 메시지 컨버터를 이용하는 것이 아니라 프로퍼티(constructor, setter)를 찾고, 그것으로 객체를 만드는 것인가요?




