Class ResourceHttpMessageConverter
java.lang.Object
org.springframework.http.converter.AbstractHttpMessageConverter<org.springframework.core.io.Resource>
org.springframework.http.converter.ResourceHttpMessageConverter
- All Implemented Interfaces:
- HttpMessageConverter<org.springframework.core.io.Resource>
public class ResourceHttpMessageConverter
extends AbstractHttpMessageConverter<org.springframework.core.io.Resource>
Implementation of 
HttpMessageConverter that can read/write Resources
 and supports byte range requests.
 By default, this converter can read all media types. The MediaTypeFactory is used
 to determine the Content-Type of written resources.
- Since:
- 3.0.2
- Author:
- Arjen Poutsma, Juergen Hoeller, Kazuki Shimizu
- 
Field SummaryFields inherited from class org.springframework.http.converter.AbstractHttpMessageConverterlogger
- 
Constructor SummaryConstructorsConstructorDescriptionCreate a new instance of theResourceHttpMessageConverterthat supports read streaming, i.e.ResourceHttpMessageConverter(boolean supportsReadStreaming) Create a new instance of theResourceHttpMessageConverter.
- 
Method SummaryModifier and TypeMethodDescriptionvoidaddDefaultHeaders(HttpOutputMessage message, org.springframework.core.io.Resource resource, MediaType contentType) Adds the default headers for the given resource to the given message.protected LonggetContentLength(org.springframework.core.io.Resource resource, MediaType contentType) Returns the content length for the given type.protected MediaTypegetDefaultContentType(org.springframework.core.io.Resource resource) Returns the default content type for the given type.protected org.springframework.core.io.ResourcereadInternal(Class<? extends org.springframework.core.io.Resource> clazz, HttpInputMessage inputMessage) Abstract template method that reads the actual object.protected booleanIndicates whether the given class is supported by this converter.protected booleansupportsRepeatableWrites(org.springframework.core.io.Resource resource) Indicates whether this message converter can write the given object multiple times.protected voidwriteContent(org.springframework.core.io.Resource resource, HttpOutputMessage outputMessage) protected voidwriteInternal(org.springframework.core.io.Resource resource, HttpOutputMessage outputMessage) Abstract template method that writes the actual body.Methods inherited from class org.springframework.http.converter.AbstractHttpMessageConverteraddDefaultHeaders, canRead, canRead, canWrite, canWrite, getDefaultCharset, getSupportedMediaTypes, read, setDefaultCharset, setSupportedMediaTypes, writeMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.http.converter.HttpMessageConvertergetSupportedMediaTypes
- 
Constructor Details- 
ResourceHttpMessageConverterpublic ResourceHttpMessageConverter()Create a new instance of theResourceHttpMessageConverterthat supports read streaming, i.e. can convert anHttpInputMessagetoInputStreamResource.
- 
ResourceHttpMessageConverterpublic ResourceHttpMessageConverter(boolean supportsReadStreaming) Create a new instance of theResourceHttpMessageConverter.- Parameters:
- supportsReadStreaming- whether the converter should support read streaming, i.e. convert to- InputStreamResource
- Since:
- 5.0
 
 
- 
- 
Method Details- 
supportsDescription copied from class:AbstractHttpMessageConverterIndicates whether the given class is supported by this converter.- Specified by:
- supportsin class- AbstractHttpMessageConverter<org.springframework.core.io.Resource>
- Parameters:
- clazz- the class to test for support
- Returns:
- trueif supported;- falseotherwise
 
- 
readInternalprotected org.springframework.core.io.Resource readInternal(Class<? extends org.springframework.core.io.Resource> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException Description copied from class:AbstractHttpMessageConverterAbstract template method that reads the actual object. Invoked fromAbstractHttpMessageConverter.read(java.lang.Class<? extends T>, org.springframework.http.HttpInputMessage).- Specified by:
- readInternalin class- AbstractHttpMessageConverter<org.springframework.core.io.Resource>
- Parameters:
- clazz- the type of object to return
- inputMessage- the HTTP input message to read from
- Returns:
- the converted object
- Throws:
- IOException- in case of I/O errors
- HttpMessageNotReadableException- in case of conversion errors
 
- 
getDefaultContentTypeDescription copied from class:AbstractHttpMessageConverterReturns the default content type for the given type. Called whenAbstractHttpMessageConverter.write(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage)is invoked without a specified content type parameter.By default, this returns the first element of the supportedMediaTypesproperty, if any. Can be overridden in subclasses.- Overrides:
- getDefaultContentTypein class- AbstractHttpMessageConverter<org.springframework.core.io.Resource>
- Parameters:
- resource- the type to return the content type for
- Returns:
- the content type, or nullif not known
 
- 
getContentLengthprotected Long getContentLength(org.springframework.core.io.Resource resource, @Nullable MediaType contentType) throws IOException Description copied from class:AbstractHttpMessageConverterReturns the content length for the given type.By default, this returns null, meaning that the content length is unknown. Can be overridden in subclasses.- Overrides:
- getContentLengthin class- AbstractHttpMessageConverter<org.springframework.core.io.Resource>
- Parameters:
- resource- the type to return the content length for
- Returns:
- the content length, or nullif not known
- Throws:
- IOException
 
- 
addDefaultHeaderspublic void addDefaultHeaders(HttpOutputMessage message, org.springframework.core.io.Resource resource, @Nullable MediaType contentType) throws IOException Adds the default headers for the given resource to the given message.- Throws:
- IOException
- Since:
- 6.0
 
- 
writeInternalprotected void writeInternal(org.springframework.core.io.Resource resource, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException Description copied from class:AbstractHttpMessageConverterAbstract template method that writes the actual body. Invoked fromAbstractHttpMessageConverter.write(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage).- Specified by:
- writeInternalin class- AbstractHttpMessageConverter<org.springframework.core.io.Resource>
- Parameters:
- resource- the object to write to the output message
- outputMessage- the HTTP output message to write to
- Throws:
- IOException- in case of I/O errors
- HttpMessageNotWritableException- in case of conversion errors
 
- 
writeContentprotected void writeContent(org.springframework.core.io.Resource resource, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException 
- 
supportsRepeatableWritesprotected boolean supportsRepeatableWrites(org.springframework.core.io.Resource resource) Description copied from class:AbstractHttpMessageConverterIndicates whether this message converter can write the given object multiple times.Default implementation returns false.- Overrides:
- supportsRepeatableWritesin class- AbstractHttpMessageConverter<org.springframework.core.io.Resource>
- Parameters:
- resource- the object t
- Returns:
- trueif- tcan be written repeatedly;- falseotherwise
 
 
-