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 |