Class ResourceHttpMessageConverter
- java.lang.Object
- org.springframework.http.converter.AbstractHttpMessageConverter<Resource>
- org.springframework.http.converter.ResourceHttpMessageConverter
- All Implemented Interfaces:
HttpMessageConverter<Resource>
public class ResourceHttpMessageConverter extends AbstractHttpMessageConverter<Resource>
Implementation ofHttpMessageConverterthat can read/writeResourcesand supports byte range requests.By default, this converter can read all media types. The Java Activation Framework (JAF) - if available - is used to determine the
Content-Typeof written resources. If JAF is not available,application/octet-streamis used.- Since:
- 3.0.2
- Author:
- Arjen Poutsma, Juergen Hoeller, Kazuki Shimizu
Field Summary
Fields inherited from class org.springframework.http.converter.AbstractHttpMessageConverter
logger
Constructor Summary
Constructors Constructor Description ResourceHttpMessageConverter()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 booleansupports(Class<?> clazz)Indicates whether the given class is supported by this converter.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.AbstractHttpMessageConverter
addDefaultHeaders, canRead, canRead, canWrite, canWrite, getDefaultCharset, getSupportedMediaTypes, read, setDefaultCharset, setSupportedMediaTypes, write
Constructor Detail
ResourceHttpMessageConverter
public ResourceHttpMessageConverter()
Method Detail
supports
protected boolean supports(Class<?> clazz)
Description copied from class:AbstractHttpMessageConverterIndicates whether the given class is supported by this converter.- Specified by:
supportsin classAbstractHttpMessageConverter<Resource>- Parameters:
clazz- the class to test for support- Returns:
trueif supported;falseotherwise
readInternal
protected 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 classAbstractHttpMessageConverter<Resource>- Parameters:
clazz- the type of object to returninputMessage- the HTTP input message to read from- Returns:
- the converted object
- Throws:
IOException- in case of I/O errorsHttpMessageNotReadableException- in case of conversion errors
getDefaultContentType
protected MediaType getDefaultContentType(Resource resource)
Description 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 classAbstractHttpMessageConverter<Resource>- Parameters:
resource- the type to return the content type for- Returns:
- the content type, or
nullif not known
getContentLength
protected Long getContentLength(Resource resource, 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 classAbstractHttpMessageConverter<Resource>- Parameters:
resource- the type to return the content length for- Returns:
- the content length, or
nullif not known - Throws:
IOException
writeInternal
protected 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 classAbstractHttpMessageConverter<Resource>- Parameters:
resource- the object to write to the output messageoutputMessage- the HTTP output message to write to- Throws:
IOException- in case of I/O errorsHttpMessageNotWritableException- in case of conversion errors
writeContent
protected void writeContent(Resource resource, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException