Spring MVC HTTP Message Converter
Spring Web MVC
백기선님의 강의인 Spring Web MVC 강의를 듣고 공부한 내용을 정리한 글
HTTP Message Converter (매우 중요)
HTTP Message Converter는 요청 본문에서 메시지를 읽어들이거나(@RequestBody), 응답 본문에 메시지를 작성할때(@ResponseBody)를 사용한다.
Message Converter를 정하는 기준은 Request Header의 Content-Type에 따라 적절한 Message Converter를 결정한다.
기본 HTTP Message Converter
바이트 배열
문자열
Resource
Form
의존성이 있는 경우
JAXB2
Jackson2
Jackson
Gson
Atom
Rss
등등…
설정 방법
WebConfigurer 인터페이스에 구현된 메소드를 Overriding하여 설정 가능
사실상 Spring MVC의 설정은 대부분 WebConfigurer 여기에있는 메소드를 사용하면 커스터마이징할 수 있는 것 같다.
기본으로 등록해주는 컨버터는 다 무시하고 새로운 컨버터를 설정하려면 configureMessageConverters
기본으로 등록해주는 컨버터에 새로운 컨버터를 추가하고 싶은 경우라면 extendMessageConverters를 사용한다.
위의 방법 외에 백기선님이 추천하시는 방법은 의존성 추가로 컨버터를 등록하는 것을 추천하고 계신다.
우리는 구현된 컨버터를 사용하는 입장이기 때문에 일반적으로는 의존성 추가로 컨버터를 등록하는 경우가 많다.
그래들 설정에 의존성을 추가하면 컨버터가 자동으로 등록된다.
이 기능을 담당하는 것이 WebMvcConfigurationSupport이고 이 클래스는 스프링 부트가 아닌 스프링 프레임워크의 기능이라고 한다.
Reference
인프런 백기선님의 스프링 Web MVC