Loading...
Spring Framework Reference Documentation 7.0.2의 HTTP Message Conversion의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
See equivalent in the Reactive stack
spring-web module에는 InputStream과 OutputStream을 통해 HTTP 요청과 응답의 body를 읽고 쓰기 위한 HttpMessageConverter 인터페이스가 포함되어 있습니다.
HttpMessageConverter 인스턴스는 클라이언트 사이드(예: RestClient에서)와 서버 사이드(예: Spring MVC REST 컨트롤러에서)에서 사용됩니다.
주요 미디어(MIME) 타입에 대한 구체적인 구현은 프레임워크에서 제공되며, 기본적으로 클라이언트 사이드의 RestClient와 RestTemplate, 서버 사이드의 RequestMappingHandlerAdapter에 등록됩니다(Configuring Message Converters 참고).
여러 가지 HttpMessageConverter 구현이 아래에 설명되어 있습니다.
전체 목록은 HttpMessageConverter Javadoc을 참고하십시오.
모든 컨버터에 대해 기본 미디어 타입이 사용되지만, supportedMediaTypes 프로퍼티를 설정하여 이를 오버라이드할 수 있습니다.
| MessageConverter | Description |
|---|---|
StringHttpMessageConverter | HTTP 요청과 응답에서 String 인스턴스를 읽고 쓸 수 있는 HttpMessageConverter 구현입니다.<br>기본적으로, 이 컨버터는 모든 텍스트 미디어 타입(text/*)을 지원하며 text/plain의 Content-Type으로 기록합니다. |
FormHttpMessageConverter | HTTP 요청과 응답에서 폼 데이터를 읽고 쓸 수 있는 HttpMessageConverter 구현입니다.<br>기본적으로, 이 컨버터는 application/x-www-form-urlencoded 미디어 타입을 읽고 씁니다.<br>폼 데이터는 MultiValueMap<String, String>에서 읽고 그 안에 기록됩니다.<br>이 컨버터는 MultiValueMap<String, Object>에서 읽은 멀티파트 데이터를 기록할 수도 있습니다(read는 불가).<br>기본적으로 multipart/form-data가 지원됩니다.<br>추가적인 멀티파트 서브타입은 폼 데이터를 기록하기 위해 지원될 수 있습니다.<br>자세한 내용은 FormHttpMessageConverter의 javadoc을 참고하십시오. |
ByteArrayHttpMessageConverter | HTTP 요청과 응답에서 바이트 배열을 읽고 쓸 수 있는 HttpMessageConverter 구현입니다.<br>기본적으로, 이 컨버터는 모든 미디어 타입(*/*)을 지원하며 application/octet-stream의 Content-Type으로 기록합니다.<br>supportedMediaTypes 프로퍼티를 설정하고 getContentType(byte[])를 오버라이드하여 이를 변경할 수 있습니다. |
MarshallingHttpMessageConverter | org.springframework.oxm 패키지의 Spring Marshaller와 Unmarshaller 추상화를 사용하여 XML을 읽고 쓸 수 있는 HttpMessageConverter 구현입니다.<br>이 컨버터를 사용하기 전에 Marshaller와 Unmarshaller가 필요합니다.<br>이들은 생성자나 빈 프로퍼티를 통해 주입할 수 있습니다.<br>기본적으로, 이 컨버터는 text/xml과 application/xml을 지원합니다. |
JacksonJsonHttpMessageConverter | Jackson의 JsonMapper를 사용하여 JSON을 읽고 쓸 수 있는 HttpMessageConverter 구현입니다.<br>필요에 따라 Jackson이 제공하는 어노테이션을 사용하여 JSON 매핑을 커스터마이즈할 수 있습니다.<br>추가적인 제어가 필요할 때(특정 타입에 대해 커스텀 JSON 직렬화기/역직렬화기를 제공해야 하는 경우), JsonMapper 또는 JsonMapper.Builder 생성자 파라미터를 통해 커스텀 JsonMapper를 주입할 수 있습니다.<br>기본적으로, 이 컨버터는 application/json을 지원합니다. 이는 tools.jackson.core:jackson-databind 의존성이 필요합니다. |
JacksonXmlHttpMessageConverter | Jackson XML 익스텐션의 XmlMapper를 사용하여 XML을 읽고 쓸 수 있는 HttpMessageConverter 구현입니다.<br>필요에 따라 JAXB 또는 Jackson이 제공하는 어노테이션을 사용하여 XML 매핑을 커스터마이즈할 수 있습니다.<br>추가적인 제어가 필요할 때(특정 타입에 대해 커스텀 XML 직렬화기/역직렬화기를 제공해야 하는 경우), JsonMapper 또는 JsonMapper.Builder 생성자 파라미터를 통해 커스텀 XmlMapper를 주입할 수 있습니다.<br>기본적으로, 이 컨버터는 application/xml을 지원합니다. 이는 tools.jackson.dataformat:jackson-dataformat-xml 의존성이 필요합니다. |
KotlinSerializationJsonHttpMessageConverter | kotlinx.serialization을 사용하여 JSON을 읽고 쓸 수 있는 HttpMessageConverter 구현입니다.<br>이 컨버터는 Jackson과 충돌하기 때문에 기본적으로는 설정되지 않습니다.<br>개발자는 Jackson보다 앞서 추가 컨버터로 이를 설정해야 합니다. |
JacksonCborHttpMessageConverter | tools.jackson.dataformat:jackson-dataformat-cbor |
SourceHttpMessageConverter | HTTP 요청과 응답에서 javax.xml.transform.Source를 읽고 쓸 수 있는 HttpMessageConverter 구현입니다.<br>DOMSource, SAXSource, StreamSource만 지원됩니다.<br>기본적으로, 이 컨버터는 text/xml과 application/xml을 지원합니다. |
GsonHttpMessageConverter | "Google Gson"을 사용하여 JSON을 읽고 쓸 수 있는 HttpMessageConverter 구현입니다.<br>이는 com.google.code.gson:gson 의존성이 필요합니다. |
JsonbHttpMessageConverter | Jakarta Json Bind API를 사용하여 JSON을 읽고 쓸 수 있는 HttpMessageConverter 구현입니다.<br>이는 jakarta.json.bind:jakarta.json.bind-api 의존성과 사용 가능한 구현체가 필요합니다. |
ProtobufHttpMessageConverter | "application/x-protobuf"<br>콘텐츠 타입으로 Protobuf 메시지를 바이너리 포맷으로 읽고 쓸 수 있는 HttpMessageConverter 구현입니다. 이는 com.google.protobuf:protobuf-java 의존성이 필요합니다. |
ProtobufJsonFormatHttpMessageConverter | Protobuf 메시지로부터 JSON 문서를 읽고 쓰는 HttpMessageConverter 구현입니다.<br>이는 com.google.protobuf:protobuf-java-util 의존성이 필요합니다. |
Table 1. HttpMessageConverter Implementations
Filters
Annotated Controllers