public class ResourceHttpMessageConverter extends AbstractHttpMessageConverter<Resource>
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.
logger
Constructor and Description |
---|
ResourceHttpMessageConverter()
Create a new instance of the
ResourceHttpMessageConverter
that supports read streaming, i.e. |
ResourceHttpMessageConverter(boolean supportsReadStreaming)
Create a new instance of the
ResourceHttpMessageConverter . |
Modifier and Type | Method and Description |
---|---|
protected Long |
getContentLength(Resource resource,
MediaType contentType)
Returns the content length for the given type.
|
protected MediaType |
getDefaultContentType(Resource resource)
Returns the default content type for the given type.
|
protected Resource |
readInternal(Class<? extends Resource> clazz,
HttpInputMessage inputMessage)
Abstract template method that reads the actual object.
|
protected boolean |
supports(Class<?> clazz)
Indicates whether the given class is supported by this converter.
|
protected void |
writeContent(Resource resource,
HttpOutputMessage outputMessage) |
protected void |
writeInternal(Resource resource,
HttpOutputMessage outputMessage)
Abstract template method that writes the actual body.
|
addDefaultHeaders, canRead, canRead, canWrite, canWrite, getDefaultCharset, getSupportedMediaTypes, read, setDefaultCharset, setSupportedMediaTypes, write
public ResourceHttpMessageConverter()
ResourceHttpMessageConverter
that supports read streaming, i.e. can convert an
HttpInputMessage
to InputStreamResource
.public ResourceHttpMessageConverter(boolean supportsReadStreaming)
ResourceHttpMessageConverter
.supportsReadStreaming
- whether the converter should support
read streaming, i.e. convert to InputStreamResource
protected boolean supports(Class<?> clazz)
AbstractHttpMessageConverter
supports
in class AbstractHttpMessageConverter<Resource>
clazz
- the class to test for supporttrue
if supported; false
otherwiseprotected Resource readInternal(Class<? extends Resource> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException
AbstractHttpMessageConverter
AbstractHttpMessageConverter.read(java.lang.Class<? extends T>, org.springframework.http.HttpInputMessage)
.readInternal
in class AbstractHttpMessageConverter<Resource>
clazz
- the type of object to returninputMessage
- the HTTP input message to read fromIOException
- in case of I/O errorsHttpMessageNotReadableException
- in case of conversion errorsprotected MediaType getDefaultContentType(Resource resource)
AbstractHttpMessageConverter
AbstractHttpMessageConverter.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
supportedMediaTypes
property, if any.
Can be overridden in subclasses.
getDefaultContentType
in class AbstractHttpMessageConverter<Resource>
resource
- the type to return the content type fornull
if not knownprotected Long getContentLength(Resource resource, @Nullable MediaType contentType) throws IOException
AbstractHttpMessageConverter
By default, this returns null
, meaning that the content length is unknown.
Can be overridden in subclasses.
getContentLength
in class AbstractHttpMessageConverter<Resource>
resource
- the type to return the content length fornull
if not knownIOException
protected void writeInternal(Resource resource, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException
AbstractHttpMessageConverter
AbstractHttpMessageConverter.write(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage)
.writeInternal
in class AbstractHttpMessageConverter<Resource>
resource
- the object to write to the output messageoutputMessage
- the HTTP output message to write toIOException
- in case of I/O errorsHttpMessageNotWritableException
- in case of conversion errorsprotected void writeContent(Resource resource, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException