クラス AbstractHttpMessageConverter<T>
java.lang.ObjectSE
org.springframework.http.converter.AbstractHttpMessageConverter<T>
- 型パラメーター:
T
- 変換されたオブジェクト型
- 実装されたすべてのインターフェース:
HttpMessageConverter<T>
- 既知の直属サブクラス
AbstractGenericHttpMessageConverter
、AbstractWireFeedHttpMessageConverter
、AbstractXmlHttpMessageConverter
、ByteArrayHttpMessageConverter
、ObjectToStringHttpMessageConverter
、ProtobufHttpMessageConverter
、ResourceHttpMessageConverter
、SourceHttpMessageConverter
、StringHttpMessageConverter
public abstract class AbstractHttpMessageConverter<T>
extends ObjectSE
implements HttpMessageConverter<T>
ほとんどの
HttpMessageConverter
実装の抽象基本クラス。 この基本クラスは、supportedMediaTypes
Bean プロパティを介して、サポートされる MediaTypes
の設定のサポートを追加します。また、出力メッセージへの書き込み時に Content-Type
および Content-Length
のサポートを追加します。
- 導入:
- 3.0
- 作成者:
- Arjen Poutsma, Juergen Hoeller, Sebastien Deleuze
フィールドサマリー
コンストラクターのサマリー
修飾子コンストラクター説明protected
サポートされているメディア型なしでAbstractHttpMessageConverter
を構築します。protected
AbstractHttpMessageConverter
(CharsetSE defaultCharset, MediaType... supportedMediaTypes) デフォルトの文字セットとサポートされている複数のメディア型でAbstractHttpMessageConverter
を構築します。protected
AbstractHttpMessageConverter
(MediaType supportedMediaType) サポートされている 1 つのメディア型でAbstractHttpMessageConverter
を構築します。protected
AbstractHttpMessageConverter
(MediaType... supportedMediaTypes) サポートされている複数のメディア型でAbstractHttpMessageConverter
を構築します。メソッドのサマリー
修飾子と型メソッド説明protected void
addDefaultHeaders
(HttpHeaders headers, T t, MediaType contentType) 出力メッセージにデフォルトのヘッダーを追加します。boolean
この実装は、指定されたクラスがサポートされているかどうか、およびサポートされているメディア型 に指定されたメディア型が 含まれているかどうかをチェックします。protected boolean
boolean
protected boolean
指定されたメディア型にサポートされているメディア型のいずれかが含まれている場合、true
を返します。protected LongSE
getContentLength
(T t, MediaType contentType) 指定された型のコンテンツの長さを返します。デフォルトの文字セットがあれば返します。protected MediaType
指定された型のデフォルトのコンテンツ型を返します。このコンバーターでサポートされているメディア型のリストを返します。final 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
指定されたクラスがこのコンバーターでサポートされているかどうかを示します。protected boolean
このメッセージコンバーターが指定されたオブジェクトを複数回書き込むことができるかどうかを示します。final 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) 実際の本文を書き込む抽象テンプレートメソッド。クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.http.converter.HttpMessageConverter から継承されたメソッド
getSupportedMediaTypes
フィールドの詳細
logger
サブクラスで利用可能なロガー。
コンストラクターの詳細
AbstractHttpMessageConverter
protected AbstractHttpMessageConverter()サポートされているメディア型なしでAbstractHttpMessageConverter
を構築します。AbstractHttpMessageConverter
サポートされている 1 つのメディア型でAbstractHttpMessageConverter
を構築します。- パラメーター:
supportedMediaType
- サポートされているメディア型
AbstractHttpMessageConverter
サポートされている複数のメディア型でAbstractHttpMessageConverter
を構築します。- パラメーター:
supportedMediaTypes
- サポートされているメディア型
AbstractHttpMessageConverter
デフォルトの文字セットとサポートされている複数のメディア型でAbstractHttpMessageConverter
を構築します。- パラメーター:
defaultCharset
- デフォルトの文字セットですsupportedMediaTypes
- サポートされているメディア型- 導入:
- 4.3
メソッドの詳細
setSupportedMediaTypes
このコンバーターによってサポートされるMediaType
オブジェクトのリストを設定します。getSupportedMediaTypes
インターフェースからコピーされた説明:HttpMessageConverter
このコンバーターでサポートされているメディア型のリストを返します。このリストは、考えられるすべてのターゲット要素型に適用されるとは限らないため、このメソッドの呼び出しは通常、canWrite(clazz, null
を介して保護する必要があります。このリストでは、特定のクラスでのみサポートされている MIME 型を除外することもできます。または、HttpMessageConverter.getSupportedMediaTypes(Class)
を使用してより正確なリストを作成します。- 次で指定:
- インターフェース
HttpMessageConverter<T>
のgetSupportedMediaTypes
- 戻り値:
- サポートされているメディア型のリスト
setDefaultCharset
デフォルトの文字セットがある場合は設定します。- 導入:
- 4.3
getDefaultCharset
デフォルトの文字セットがあれば返します。- 導入:
- 4.3
canRead
この実装は、指定されたクラスがサポートされているかどうか、およびサポートされているメディア型 に指定されたメディア型が 含まれているかどうかをチェックします。- 次で指定:
- インターフェース
HttpMessageConverter<T>
のcanRead
- パラメーター:
clazz
- 読み込み可能性をテストするクラスmediaType
- 読み取るメディア型(指定しない場合はnull
にできます); 通常、Content-Type
ヘッダーの値。- 戻り値:
- 読み取り可能な場合は
true
。それ以外の場合はfalse
canRead
- パラメーター:
mediaType
- 読み取るメディア型は、指定しない場合はnull
にできます。通常、Content-Type
ヘッダーの値。- 戻り値:
- サポートされているメディア型にメディア型が含まれている場合、またはメディア型が
null
の場合、true
canWrite
- 次で指定:
- インターフェース
HttpMessageConverter<T>
のcanWrite
- パラメーター:
clazz
- 書き込み可能性をテストするクラスmediaType
- 書き込むメディア型(指定しない場合はnull
にすることができます); 通常、Accept
ヘッダーの値。- 戻り値:
- 書き込み可能な場合は
true
。それ以外の場合はfalse
canWrite
指定されたメディア型にサポートされているメディア型のいずれかが含まれている場合、true
を返します。- パラメーター:
mediaType
- 書き込むメディア型は、指定しない場合はnull
にできます。通常、Accept
ヘッダーの値。- 戻り値:
- サポートされているメディア型がメディア型と互換性がある場合、またはメディア型が
null
である場合は、true
read
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
- 変換エラーの場合
write
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
- 変換エラーの場合
addDefaultHeaders
protected void addDefaultHeaders(HttpHeaders headers, T t, @Nullable MediaType contentType) throws IOExceptionSE 出力メッセージにデフォルトのヘッダーを追加します。この実装は、コンテンツ型が提供されない場合は
getDefaultContentType(Object)
に委譲し、必要に応じてデフォルトの文字セットを設定し、getContentLength(T, org.springframework.http.MediaType)
を呼び出し、対応するヘッダーを設定します。- 例外:
IOExceptionSE
- 導入:
- 4.2
getDefaultContentType
指定された型のデフォルトのコンテンツ型を返します。指定されたコンテンツ型パラメーターなしでwrite(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage)
が呼び出されたときに呼び出されます。デフォルトでは、
supportedMediaTypes
プロパティの最初の要素があれば、それを返します。サブクラスでオーバーライドできます。- パラメーター:
t
- コンテンツ型を返す型- 戻り値:
- コンテンツ型、または不明の場合は
null
- 例外:
IOExceptionSE
getContentLength
@Nullable protected LongSE getContentLength(T t, @Nullable MediaType contentType) throws IOExceptionSE 指定された型のコンテンツの長さを返します。デフォルトでは、これは
null
を返します。これは、コンテンツの長さが不明であることを意味します。サブクラスでオーバーライドできます。- パラメーター:
t
- コンテンツの長さを返す型- 戻り値:
- コンテンツの長さ、または不明の場合は
null
- 例外:
IOExceptionSE
supportsRepeatableWrites
このメッセージコンバーターが指定されたオブジェクトを複数回書き込むことができるかどうかを示します。デフォルトの実装は
false
を返します。- パラメーター:
t
- オブジェクト t- 戻り値:
-
t
を繰り返し書き込める場合はtrue
。それ以外の場合はfalse
- 導入:
- 6.1
supports
指定されたクラスがこのコンバーターでサポートされているかどうかを示します。- パラメーター:
clazz
- サポートをテストするクラス- 戻り値:
- サポートされている場合は
true
。それ以外の場合はfalse
readInternal
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
- 変換エラーの場合
writeInternal
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
- 変換エラーの場合