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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getSupportedMediaTypes
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 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 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 known@Nullable protected 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 writeContent(Resource resource, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException