T
- 変換されたオブジェクト型 public abstract class AbstractHttpMessageConverter<T> extends ObjectSE implements HttpMessageConverter<T>
HttpMessageConverter
実装の抽象基本クラス。 この基本クラスは、supportedMediaTypes
Bean プロパティを介して、サポートされる MediaTypes
の設定のサポートを追加します。また、出力メッセージへの書き込み時に Content-Type
および Content-Length
のサポートを追加します。
修飾子 | コンストラクターと説明 |
---|---|
protected | AbstractHttpMessageConverter() サポートされているメディア型なしで AbstractHttpMessageConverter を構築します。 |
protected | AbstractHttpMessageConverter(CharsetSE defaultCharset, MediaType... supportedMediaTypes) デフォルトの文字セットとサポートされている複数のメディア型で AbstractHttpMessageConverter を構築します。 |
protected | AbstractHttpMessageConverter(MediaType... supportedMediaTypes) サポートされている複数のメディア型で AbstractHttpMessageConverter を構築します。 |
protected | AbstractHttpMessageConverter(MediaType supportedMediaType) サポートされている 1 つのメディア型で AbstractHttpMessageConverter を構築します。 |
修飾子と型 | メソッドと説明 |
---|---|
protected void | addDefaultHeaders(HttpHeaders headers, T t, MediaType contentType) 出力メッセージにデフォルトのヘッダーを追加します。 |
boolean | canRead(ClassSE<?> clazz, MediaType mediaType) この実装は、指定されたクラスがサポートされているかどうか、およびサポートされているメディア型 に指定されたメディア型が 含まれているかどうかをチェックします。 |
protected boolean | canRead(MediaType mediaType) |
boolean | canWrite(ClassSE<?> clazz, MediaType mediaType) |
protected boolean | canWrite(MediaType mediaType) 指定されたメディア型にサポートされているメディア型のいずれかが含まれている場合、 true を返します。 |
protected LongSE | getContentLength(T t, MediaType contentType) 指定された型のコンテンツの長さを返します。 |
CharsetSE | getDefaultCharset() デフォルトの文字セットがあれば返します。 |
protected MediaType | getDefaultContentType(T t) 指定された型のデフォルトのコンテンツ型を返します。 |
ListSE<MediaType> | getSupportedMediaTypes() このコンバーターでサポートされているメディア型のリストを返します。 |
T | read(ClassSE<? extends T> clazz, HttpInputMessage inputMessage) この実装は、 readInternal(Class, HttpInputMessage) への単純なデリゲートです。 |
protected abstract T | readInternal(ClassSE<? extends T> clazz, HttpInputMessage inputMessage) 実際のオブジェクトを読み取る抽象テンプレートメソッド。 |
void | setDefaultCharset(CharsetSE defaultCharset) デフォルトの文字セットがある場合は設定します。 |
void | setSupportedMediaTypes(ListSE<MediaType> supportedMediaTypes) このコンバーターによってサポートされる MediaType オブジェクトのリストを設定します。 |
protected abstract boolean | supports(ClassSE<?> clazz) 指定されたクラスがこのコンバーターでサポートされているかどうかを示します。 |
void | write(T t, MediaType contentType, HttpOutputMessage outputMessage) この実装は、 addDefaultHeaders(org.springframework.http.HttpHeaders, T, org.springframework.http.MediaType) を呼び出してデフォルトのヘッダーを設定し、次に writeInternal(T, org.springframework.http.HttpOutputMessage) を呼び出します。 |
protected abstract void | writeInternal(T t, HttpOutputMessage outputMessage) 実際の本文を書き込む抽象テンプレートメソッド。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
getSupportedMediaTypes
protected final Log logger
protected AbstractHttpMessageConverter()
AbstractHttpMessageConverter
を構築します。protected AbstractHttpMessageConverter(MediaType supportedMediaType)
AbstractHttpMessageConverter
を構築します。supportedMediaType
- サポートされているメディア型 protected AbstractHttpMessageConverter(MediaType... supportedMediaTypes)
AbstractHttpMessageConverter
を構築します。supportedMediaTypes
- サポートされているメディア型 public void setSupportedMediaTypes(ListSE<MediaType> supportedMediaTypes)
MediaType
オブジェクトのリストを設定します。public ListSE<MediaType> getSupportedMediaTypes()
HttpMessageConverter
canWrite(clazz, null
を介して保護する必要があります。このリストでは、特定のクラスでのみサポートされている MIME 型を除外することもできます。または、HttpMessageConverter.getSupportedMediaTypes(Class)
を使用してより正確なリストを作成します。HttpMessageConverter<T>
の getSupportedMediaTypes
public void setDefaultCharset(@Nullable CharsetSE defaultCharset)
public boolean canRead(ClassSE<?> clazz, @Nullable MediaType mediaType)
HttpMessageConverter<T>
の canRead
clazz
- 読み込み可能性をテストするクラス mediaType
- 読み取るメディア型(指定しない場合は null
にできます); 通常、Content-Type
ヘッダーの値。true
。それ以外の場合は false
protected boolean canRead(@Nullable MediaType mediaType)
mediaType
- 読み取るメディア型は、指定しない場合は null
にできます。通常、Content-Type
ヘッダーの値。null
の場合、true
public boolean canWrite(ClassSE<?> clazz, @Nullable MediaType mediaType)
HttpMessageConverter<T>
の canWrite
clazz
- 書き込み可能性をテストするクラス mediaType
- 書き込むメディア型(指定しない場合は null
にすることができます); 通常、Accept
ヘッダーの値。true
。それ以外の場合は false
protected boolean canWrite(@Nullable MediaType mediaType)
true
を返します。mediaType
- 書き込むメディア型は、指定しない場合は null
にできます。通常、Accept
ヘッダーの値。null
である場合は、true
public final T read(ClassSE<? extends T> clazz, HttpInputMessage inputMessage) throws IOExceptionSE, HttpMessageNotReadableException
readInternal(Class, HttpInputMessage)
への単純なデリゲートです。ただし、将来の実装ではデフォルトの動作が追加される可能性があります。HttpMessageConverter<T>
の read
clazz
- 返すオブジェクトの型。この型は、このインターフェースの canRead
メソッドに事前に渡されている必要があります。このメソッドは true
を返している必要があります。inputMessage
- 読み込む HTTP 入力メッセージ IOExceptionSE
- I/O エラーの場合 HttpMessageNotReadableException
- 変換エラーの場合 public final void write(T t, @Nullable MediaType contentType, HttpOutputMessage outputMessage) throws IOExceptionSE, HttpMessageNotWritableException
addDefaultHeaders(org.springframework.http.HttpHeaders, T, org.springframework.http.MediaType)
を呼び出してデフォルトのヘッダーを設定し、次に writeInternal(T, org.springframework.http.HttpOutputMessage)
を呼び出します。HttpMessageConverter<T>
の write
t
- 出力メッセージに書き込むオブジェクト。このオブジェクトの型は、このインターフェースの canWrite
メソッドに事前に渡されている必要があります。このメソッドは true
を返している必要があります。contentType
- 書き込み時に使用するコンテンツ型。コンバーターのデフォルトのコンテンツ型を使用する必要があることを示す null
の場合があります。null
でない場合、このメディア型は、このインターフェースの canWrite
メソッドに事前に渡されている必要があり、true
が返されている必要があります。outputMessage
- 書き込むメッセージ IOExceptionSE
- I/O エラーの場合 HttpMessageNotWritableException
- 変換エラーの場合 protected void addDefaultHeaders(HttpHeaders headers, T t, @Nullable MediaType contentType) throws IOExceptionSE
この実装は、コンテンツ型が提供されない場合は getDefaultContentType(Object)
に委譲し、必要に応じてデフォルトの文字セットを設定し、getContentLength(T, org.springframework.http.MediaType)
を呼び出し、対応するヘッダーを設定します。
IOExceptionSE
@Nullable protected MediaType getDefaultContentType(T t) throws IOExceptionSE
write(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage)
が呼び出されたときに呼び出されます。 デフォルトでは、supportedMediaTypes
プロパティの最初の要素があれば、それを返します。サブクラスでオーバーライドできます。
t
- コンテンツ型を返す型 null
IOExceptionSE
@Nullable protected LongSE getContentLength(T t, @Nullable MediaType contentType) throws IOExceptionSE
デフォルトでは、これは null
を返します。これは、コンテンツの長さが不明であることを意味します。サブクラスでオーバーライドできます。
t
- コンテンツの長さを返す型 null
IOExceptionSE
protected abstract boolean supports(ClassSE<?> clazz)
clazz
- サポートをテストするクラス true
。それ以外の場合は false
protected abstract T readInternal(ClassSE<? extends T> clazz, HttpInputMessage inputMessage) throws IOExceptionSE, HttpMessageNotReadableException
read(java.lang.Class<? extends T>, org.springframework.http.HttpInputMessage)
から呼び出されます。clazz
- 返すオブジェクトの型 inputMessage
- 読み込む HTTP 入力メッセージ IOExceptionSE
- I/O エラーの場合 HttpMessageNotReadableException
- 変換エラーの場合 protected abstract void writeInternal(T t, HttpOutputMessage outputMessage) throws IOExceptionSE, HttpMessageNotWritableException
write(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage)
から呼び出されます。t
- 出力メッセージに書き込むオブジェクト outputMessage
- 書き込む HTTP 出力メッセージ IOExceptionSE
- I/O エラーの場合 HttpMessageNotWritableException
- 変換エラーの場合