JAVA Server에 request/response를 보낼 시에, content-type을 변환해서 송신할 수 있는 기능을 제공해준다.
예를들어 웹페이지에서 json으로 request한 파라미터들을 java에서 받으려면 java object로의 변환이 필요하며 마찬가지로 response 시에도 java object에서 json으로 변환이 필요하다.
이러한 작업들을 해주는 어노테이션이 바로 @RequestBody
와 @ResponseBody
이다. 컨트롤러에 두 어노테이션을 추가해주면, JSON이나 key/value 방식 xml 등으로 송수신 할 수 있다.
설정 방법
- spring-servlet.xml 설정파일
1 | <!-- 방법 1 : 직접 정의 --> |
ByteArrayHttpMessageConverter(*)
HTTP 메시지와 byte 배열 사이의 변환을 처리한다. 컨텐츠 타입은 application/octet-stream이다.
StringHttpMessageConverter(*)
HTTP 메시지와 String 사이의 변환을 처리한다. 컨텐츠 타입은 text/plain;charset=ISO-8859-1이다.
FormHttpMessageConverter(*)
HTML 폼 데이터를 MultiValueMap으로 전달받을 때 사용된다. 지원하는 컨텐 츠 타입은 application-x-www-form-urlencorded이다.
SourceHttpMessageConverter(*)
HTTP 메시지와 javax.xml.transform.Source 사이 변환을 처리한다. 컨텐츠 타 입은 application/xml 또는 text/xml이다.
MarshallingHttpMessageConverter(*)
스프링의 Marshaller와 unMarshaller를 이용해서 XML HTTP 메시지와 객체 사 이의 변환을 처리한다. 컨텐츠 타입은 application/xml 또는 text/xml이다.
MappingJacksonHttpMessageConverter(*)
Jackson 라이브러리를 이용해서 JSON HTTP 메시지와 객체 사이의 변환을 처리한다. 컨텐츠 타입은 applicaion/json이다.