Class ResourceHttpMessageConverter
java.lang.Object
org.springframework.http.converter.AbstractHttpMessageConverter<Resource>
org.springframework.http.converter.ResourceHttpMessageConverter
- All Implemented Interfaces:
- HttpMessageConverter<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, Resource resource, MediaType contentType) Add the default headers for the given resource to the given message.protected LonggetContentLength(Resource resource, MediaType contentType) Returns the content length for the given type.protected MediaTypegetDefaultContentType(Resource resource) Returns the default content type for the given type.protected ResourcereadInternal(Class<? extends 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(Resource resource) Indicates whether this message converter can write the given object multiple times.protected voidwriteContent(Resource resource, HttpOutputMessage outputMessage) protected voidwriteInternal(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<Resource>
- Parameters:
- clazz- the class to test for support
- Returns:
- trueif supported;- falseotherwise
 
- 
readInternalprotected Resource readInternal(Class<? extends 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<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
 
- 
writeInternalprotected void writeInternal(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<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
 
- 
addDefaultHeaderspublic void addDefaultHeaders(HttpOutputMessage message, Resource resource, @Nullable MediaType contentType) throws IOException Add the default headers for the given resource to the given message.- Throws:
- IOException
- Since:
- 6.0
 
- 
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<Resource>
- Parameters:
- resource- the type to return the content type for
- Returns:
- the content type, or nullif not known
 
- 
getContentLength@Nullable protected Long getContentLength(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<Resource>
- Parameters:
- resource- the type to return the content length for
- Returns:
- the content length, or nullif not known
- Throws:
- IOException
 
- 
supportsRepeatableWritesDescription copied from class:AbstractHttpMessageConverterIndicates whether this message converter can write the given object multiple times.The default implementation returns false.- Overrides:
- supportsRepeatableWritesin class- AbstractHttpMessageConverter<Resource>
- Parameters:
- resource- the object t
- Returns:
- trueif- tcan be written repeatedly;- falseotherwise
 
- 
writeContentprotected void writeContent(Resource resource, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException 
 
-