강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

김남현님의 프로필 이미지
김남현

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

타입컨버터 추가 질문

작성

·

184

0

안녕하세요.

전에 드렸던 질문에 대한 영한님의 답변을 보고 mvc1편의 ArgumentResolver와 mvc2편의 컨버젼 서비스에 대해서 다시 듣고 생각을 정리해봤습니다. 제 생각은. 일단은 @RequestBody 나 @ResponseBody를 처리하는 ArgumentResolver는 MappingJackson2 메시지 컨버터를 이용해 메소드 파라미터에 값을 넘겨주고 해당 메시지 컨버터는 Jackson이라는 라이브러리를 사용하기 때문에 컨버젼 서비스를 이용하는게 아니라 해당 라이브러리에 설정을 변경해서 사용해야한다고 이해했습니다. 그럼 @RequestParam, @ModelAttribute, @PathVariable 은 ArgumentResolver가 컨버젼 서비스를 이용해서 메소드 파라미터에 값을 넘기는건가요? 컨버젼 서비스의 클라이언트가 누군지 궁금합니다.

ex) ArgumentResolver가 id=10&ipPort=127.0.0.1:8080 을 request.getParameter()로 받고 해당 값은 문자열이기 때문에 컨버젼 서비스를 이용해서 @RequestParam Form form 이라는 컨트롤러의 메소드 파라미터에 값을 넘기는것인지가 궁금합니다. Form 클래스는 아래와 같습니다. 

class Form {

private Long id;

private IpPort ipPort;

}

감사합니다.

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 남현님

잘 정리하셨네요^^ 생각하신 내용이 맞습니다.

감사합니다.

김남현님의 프로필 이미지
김남현

작성한 질문수

질문하기