クラス AbstractHttpMessageConverter<T>

java.lang.ObjectSE
org.springframework.http.converter.AbstractHttpMessageConverter<T>
型パラメーター:
T - 変換されたオブジェクト型
実装されたすべてのインターフェース:
HttpMessageConverter<T>
既知の直属サブクラス
AbstractGenericHttpMessageConverterAbstractWireFeedHttpMessageConverterAbstractXmlHttpMessageConverterByteArrayHttpMessageConverterObjectToStringHttpMessageConverterProtobufHttpMessageConverterResourceHttpMessageConverterSourceHttpMessageConverterStringHttpMessageConverter

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
  • フィールドの詳細

    • logger

      protected final Log logger
      サブクラスで利用可能なロガー。
  • コンストラクターの詳細

    • AbstractHttpMessageConverter

      protected AbstractHttpMessageConverter()
      サポートされているメディア型なしで AbstractHttpMessageConverter を構築します。
      関連事項:
    • AbstractHttpMessageConverter

      protected AbstractHttpMessageConverter(MediaType supportedMediaType)
      サポートされている 1 つのメディア型で AbstractHttpMessageConverter を構築します。
      パラメーター:
      supportedMediaType - サポートされているメディア型
    • AbstractHttpMessageConverter

      protected AbstractHttpMessageConverter(MediaType... supportedMediaTypes)
      サポートされている複数のメディア型で AbstractHttpMessageConverter を構築します。
      パラメーター:
      supportedMediaTypes - サポートされているメディア型
    • AbstractHttpMessageConverter

      protected AbstractHttpMessageConverter(CharsetSE defaultCharset, MediaType... supportedMediaTypes)
      デフォルトの文字セットとサポートされている複数のメディア型で AbstractHttpMessageConverter を構築します。
      パラメーター:
      defaultCharset - デフォルトの文字セットです
      supportedMediaTypes - サポートされているメディア型
      導入:
      4.3
  • メソッドの詳細

    • setSupportedMediaTypes

      public void setSupportedMediaTypes(ListSE<MediaType> supportedMediaTypes)
      このコンバーターによってサポートされる MediaType オブジェクトのリストを設定します。
    • getSupportedMediaTypes

      public ListSE<MediaType> getSupportedMediaTypes()
      インターフェースからコピーされた説明: HttpMessageConverter
      このコンバーターでサポートされているメディア型のリストを返します。このリストは、考えられるすべてのターゲット要素型に適用されるとは限らないため、このメソッドの呼び出しは通常、canWrite(clazz, null を介して保護する必要があります。このリストでは、特定のクラスでのみサポートされている MIME 型を除外することもできます。または、HttpMessageConverter.getSupportedMediaTypes(Class) を使用してより正確なリストを作成します。
      次で指定:
      インターフェース HttpMessageConverter<T>getSupportedMediaTypes 
      戻り値:
      サポートされているメディア型のリスト
    • setDefaultCharset

      public void setDefaultCharset(@Nullable CharsetSE defaultCharset)
      デフォルトの文字セットがある場合は設定します。
      導入:
      4.3
    • getDefaultCharset

      @Nullable public CharsetSE getDefaultCharset()
      デフォルトの文字セットがあれば返します。
      導入:
      4.3
    • canRead

      public boolean canRead(ClassSE<?> clazz, @Nullable MediaType mediaType)
      この実装は、指定されたクラスがサポートされているかどうか、およびサポートされているメディア型 に指定されたメディア型が 含まれているかどうかをチェックします。
      次で指定:
      インターフェース HttpMessageConverter<T>canRead 
      パラメーター:
      clazz - 読み込み可能性をテストするクラス
      mediaType - 読み取るメディア型(指定しない場合は null にできます); 通常、Content-Type ヘッダーの値。
      戻り値:
      読み取り可能な場合は true。それ以外の場合は false 
    • canRead

      protected boolean canRead(@Nullable MediaType mediaType)
      サポートされているメディア型 include のいずれかが指定されたメディア型の場合、true を返します。
      パラメーター:
      mediaType - 読み取るメディア型は、指定しない場合は null にできます。通常、Content-Type ヘッダーの値。
      戻り値:
      サポートされているメディア型にメディア型が含まれている場合、またはメディア型が null の場合、true 
    • canWrite

      public boolean canWrite(ClassSE<?> clazz, @Nullable MediaType mediaType)
      この実装は、指定されたクラスがサポートされているかどうか、およびサポートされているメディア型に指定されたメディア型が含まれているかどうかをチェックします。
      次で指定:
      インターフェース HttpMessageConverter<T>canWrite 
      パラメーター:
      clazz - 書き込み可能性をテストするクラス
      mediaType - 書き込むメディア型(指定しない場合は null にすることができます); 通常、Accept ヘッダーの値。
      戻り値:
      書き込み可能な場合は true。それ以外の場合は false 
    • canWrite

      protected boolean canWrite(@Nullable MediaType mediaType)
      指定されたメディア型にサポートされているメディア型のいずれかが含まれている場合、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

      @Nullable protected MediaType getDefaultContentType(T t) throws IOExceptionSE
      指定された型のデフォルトのコンテンツ型を返します。指定されたコンテンツ型パラメーターなしで 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

      protected boolean supportsRepeatableWrites(T t)
      このメッセージコンバーターが指定されたオブジェクトを複数回書き込むことができるかどうかを示します。

      デフォルトの実装は false を返します。

      パラメーター:
      t - オブジェクト t
      戻り値:
       t を繰り返し書き込める場合は true。それ以外の場合は false 
      導入:
      6.1
    • supports

      protected abstract boolean supports(ClassSE<?> clazz)
      指定されたクラスがこのコンバーターでサポートされているかどうかを示します。
      パラメーター:
      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 - 変換エラーの場合