HTTP메시지 컨버터에 대해 알아보자.
뷰 템플릿으로 HTML을 생성하는게 아니라, HTTP API처럼 JSON데이터를 HTTP메시지 바디에서 직접 읽거나 쓰는 경우 HTTP메시지 컨버터를 이용하면 편리하다.
다시 @Responsebody를 떠올려보자. 이를 사용하면 뷰 리졸버 대신에 HttpMessageConverter가 동작한다고 언급한적 있다.
다만, 그 구현체는 여러개가 있다.(즉, 기본 http메시지 컨버터는 인터페이스이다.) 기본 문자는 Stringhttp컨버터, 객체일경우 Jackson이란게 동작한다. 바이트 일경우엔 기본 Http컨버터가 동작한다.
스프링 MVC는 다음의 경우 HTTP메시지 컨버터를 적용한다.
HTTP요청 : @RequestBody가 있을경우
HTTP응답: @ResponseBody가 있을 경우..
모두 HTTP바디의 메시지를 읽고 쓰는데 사용된다.
이들은 응답과 요청 모두 다룬다. read()메서드는 메시지를 읽기, write()는 메시지를 쓰는 기능이다.
canRead()와 canWrite()는 메시지 컨버터가 해당 클래스, 미디어 타입을 지원하는지 체크해준다.
스프링 부트는 어플 실행시 다양한 메시지 컨버터를 자동으로 생성해 컨테이너에 등록한다.