Spring/Spring MVC

[Spring MVC] 3. HTTP Message Conversion

noahkim_ 2025. 4. 12. 10:33

1. HTTP Message Conversion

  • HTTP 요청/응답의 본문(body)을 Java 객체로 변환하거나, 반대로 Java 객체를 HTTP 본문으로 변환하는 컴포넌트입니다.

 

2. 구현체

MessageConverter 설명 지원 기본 Media Type
StringHttpMessageConverter String을 읽고 쓰는 변환기 text/*, text/plain
FormHttpMessageConverter 폼 데이터를 읽고 씀
- 읽기: MultiValueMap<String, String>
- 쓰기: MultiValueMap<String, Object>도 가능
application/x-www-form-urlencoded
multipart/form-data
ByteArrayHttpMessageConverter 바이트 배열을 읽고 씀 */*
application/octet-stream
MarshallingHttpMessageConverter
(spring-oxm)
XML을 마샬링/언마샬링 처리 (Spring OXM 기반) text/xml
application/xml
MappingJackson2HttpMessageConverter
(jackson-databind)
Jackson의 ObjectMapper를 사용한 JSON 변환기
가장 널리 사용됨
application/json
MappingJackson2XmlHttpMessageConverter
(jackson-dataformat-xml)
Jackson의 XmlMapper를 사용하여 XML 변환 application/xml
MappingJackson2CborHttpMessageConverter
(jackson-dataformat-cbor)
Jackson CBOR (binary JSON 포맷) 지원 application/cbor 등
SourceHttpMessageConverter
(javax.xml.transform.Source)
XML Source(DOM, SAX, Stream)을 읽고 씀 text/xml
application/xml
GsonHttpMessageConverter
(com.google.code.gson:gson)
Google의 Gson을 이용한 JSON 처리 application/json
JsonbHttpMessageConverter
(jakarta.json.bind:jakarta.json.bind-api)
Jakarta JSON-B API를 사용한 JSON 변환 application/json
ProtobufHttpMessageConverter
(protobuf-java)
Google Protocol Buffers (binary) 변환기 application/x-protobuf
ProtobufJsonFormatHttpMessageConverter
(protobuf-java-util)
Protobuf 메시지를 JSON 형식으로 읽고 씀 application/json

 

3. 주요 활용 맥락

구분 설명
서버 사이드(Spring MVC)
클라이언트 요청의 body(JSON/XML 등)를 Java 객체로 변환하거나, Java 객체를 JSON/XML 등으로 변환하여 응답
클라이언트 사이드(RestTemplate, WebClient 등)
요청 보낼 때 Java 객체를 JSON/XML로 직렬화하거나, 응답 받은 JSON/XML을 Java 객체로 역직렬화

 

출처

'Spring > Spring MVC' 카테고리의 다른 글

[Spring MVC] 7. HTTP Caching  (0) 2025.04.14
[Spring MVC] 6. Error Response  (0) 2025.04.12
[Spring MVC] 2. Filters  (0) 2025.04.11
[Spring MVC] 4-3. Handler Methods: Controller Advice  (0) 2023.10.17
[Spring MVC] 5. @InitBinder  (1) 2023.10.17