작성
·
277
·
수정됨
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)를 찾고, 그것으로 객체를 만드는 것인가요?