クラス 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を構築します。protectedAbstractHttpMessageConverter(CharsetSE defaultCharset, MediaType... supportedMediaTypes) デフォルトの文字セットとサポートされている複数のメディア型でAbstractHttpMessageConverterを構築します。protectedAbstractHttpMessageConverter(MediaType supportedMediaType) サポートされている 1 つのメディア型でAbstractHttpMessageConverterを構築します。protectedAbstractHttpMessageConverter(MediaType... supportedMediaTypes) サポートされている複数のメディア型でAbstractHttpMessageConverterを構築します。メソッドのサマリー
修飾子と型メソッド説明protected voidaddDefaultHeaders(HttpHeaders headers, T t, MediaType contentType) 出力メッセージにデフォルトのヘッダーを追加します。booleanこの実装は、指定されたクラスがサポートされているかどうか、およびサポートされているメディア型 に指定されたメディア型が 含まれているかどうかをチェックします。protected booleanbooleanprotected boolean指定されたメディア型にサポートされているメディア型のいずれかが含まれている場合、trueを返します。protected LongSEgetContentLength(T t, MediaType contentType) 指定された型のコンテンツの長さを返します。デフォルトの文字セットがあれば返します。protected MediaType指定された型のデフォルトのコンテンツ型を返します。このコンバーターでサポートされているメディア型のリストを返します。final Tread(ClassSE<? extends T> clazz, HttpInputMessage inputMessage) この実装は、readInternal(Class, HttpInputMessage)への単純なデリゲートです。protected abstract TreadInternal(ClassSE<? extends T> clazz, HttpInputMessage inputMessage) 実際のオブジェクトを読み取る抽象テンプレートメソッド。voidsetDefaultCharset(CharsetSE defaultCharset) デフォルトの文字セットがある場合は設定します。voidsetSupportedMediaTypes(ListSE<MediaType> supportedMediaTypes) このコンバーターによってサポートされるMediaTypeオブジェクトのリストを設定します。protected abstract boolean指定されたクラスがこのコンバーターでサポートされているかどうかを示します。protected booleanこのメッセージコンバーターが指定されたオブジェクトを複数回書き込むことができるかどうかを示します。final voidwrite(T t, MediaType contentType, HttpOutputMessage outputMessage) この実装は、addDefaultHeaders(org.springframework.http.HttpHeaders, T, org.springframework.http.MediaType)を呼び出してデフォルトのヘッダーを設定し、次にwriteInternal(T, org.springframework.http.HttpOutputMessage)を呼び出します。protected abstract voidwriteInternal(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- 変換エラーの場合