クラス AbstractJackson2HttpMessageConverter

実装されたすべてのインターフェース:
GenericHttpMessageConverter<ObjectSE>HttpMessageConverter<ObjectSE>
既知の直属サブクラス
MappingJackson2CborHttpMessageConverterMappingJackson2HttpMessageConverterMappingJackson2SmileHttpMessageConverterMappingJackson2XmlHttpMessageConverterMappingJackson2YamlHttpMessageConverter

public abstract class AbstractJackson2HttpMessageConverter extends AbstractGenericHttpMessageConverter<ObjectSE>
Jackson ベースおよびコンテンツ型に依存しない HttpMessageConverter 実装の抽象基本クラス。
導入:
4.1
作成者:
Arjen Poutsma, Keith Donald, Rossen Stoyanchev, Juergen Hoeller, Sebastien Deleuze, Sam Brannen
関連事項:
  • フィールドの詳細

    • defaultObjectMapper

      protected ObjectMapper defaultObjectMapper
  • コンストラクターの詳細

    • AbstractJackson2HttpMessageConverter

      protected AbstractJackson2HttpMessageConverter(ObjectMapper objectMapper)
    • AbstractJackson2HttpMessageConverter

      protected AbstractJackson2HttpMessageConverter(ObjectMapper objectMapper, MediaType supportedMediaType)
    • AbstractJackson2HttpMessageConverter

      protected AbstractJackson2HttpMessageConverter(ObjectMapper objectMapper, MediaType... supportedMediaTypes)
  • メソッドの詳細

    • setSupportedMediaTypes

      public void setSupportedMediaTypes(ListSE<MediaType> supportedMediaTypes)
      クラスからコピーされた説明: AbstractHttpMessageConverter
      このコンバーターによってサポートされる MediaType オブジェクトのリストを設定します。
      オーバーライド:
      クラス AbstractHttpMessageConverter<ObjectSE>setSupportedMediaTypes 
    • setObjectMapper

      public void setObjectMapper(ObjectMapper objectMapper)
      オブジェクト変換に使用するメイン ObjectMapper を構成します。設定されていない場合、デフォルトの ObjectMapper インスタンスが作成されます。

      カスタム構成の ObjectMapper を設定することは、JSON 直列化プロセスをさらに制御する 1 つの方法です。例: 特定の型のカスタムシリアライザーを提供する拡張 SerializerFactory を構成できます。直列化プロセスを改善するための別のオプションは、直列化する型に Jackson が提供するアノテーションを使用することです。この場合、カスタム構成の ObjectMapper は不要です。

      関連事項:
    • getObjectMapper

      public ObjectMapper getObjectMapper()
      使用中のメイン ObjectMapper を返却してください。
    • registerObjectMappersForType

      public void registerObjectMappersForType(ClassSE<?> clazz, ConsumerSE<MapSE<MediaType,ObjectMapper>> registrar)
      指定された ClassSE に使用する ObjectMapper インスタンスを構成します。これは、default ObjectMapper から逸脱する場合、または ObjectMapper を MediaType によって変化させる場合に役立ちます。

      注意 : このメソッドを使用すると、特定のクラスのデフォルトの ObjectMapper および supportedMediaTypes の使用が事実上オフになります。ここで構成されたマッピングは、特定のクラスでサポートする必要があるすべての MediaType を include に設定することが重要です。

      パラメーター:
      clazz - ObjectMapper インスタンスを登録するオブジェクトの型
      registrar - 指定されたクラスの MediaType と ObjectMapper の関連付けを設定または更新するコンシューマー
      導入:
      5.3.4
    • getObjectMappersForType

      @Nullable public MapSE<MediaType,ObjectMapper> getObjectMappersForType(ClassSE<?> clazz)
      指定されたクラスの ObjectMapper 登録があれば、それを返します。
      パラメーター:
      clazz - 登録を検索するクラス
      戻り値:
      MediaType から ObjectMapper への登録が登録されているマップ、または特定のクラスの登録がない場合は空。
      導入:
      5.3.4
    • getSupportedMediaTypes

      public ListSE<MediaType> getSupportedMediaTypes(ClassSE<?> clazz)
      インターフェースからコピーされた説明: HttpMessageConverter
      指定されたクラスについて、このコンバーターでサポートされているメディア型のリストを返します。コンバーターが特定のクラスをサポートしていない場合、またはメディア型のサブセットに対してのみサポートしている場合、リストは HttpMessageConverter.getSupportedMediaTypes() とは異なる場合があります。
      パラメーター:
      clazz - チェックするクラスの型
      戻り値:
      特定のクラスでサポートされているメディア型のリスト
    • getMediaTypesForProblemDetail

      protected ListSE<MediaType> getMediaTypesForProblemDetail()
      ProblemDetail でサポートされているメディア型を返します。サブクラスでオーバーライドされない限り、デフォルトでは空のリストです。
      導入:
      6.0.5
    • setPrettyPrint

      public void setPrettyPrint(boolean prettyPrint)
      JSON を記述するときに DefaultPrettyPrinter を使用するかどうか。これは、次のように ObjectMapper をセットアップするためのショートカットです。
       ObjectMapper mapper = new ObjectMapper();
       mapper.configure(SerializationFeature.INDENT_OUTPUT, true);
       converter.setObjectMapper(mapper);
       
    • canRead

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

      public boolean canRead(TypeSE type, @Nullable ClassSE<?> contextClass, @Nullable MediaType mediaType)
      インターフェースからコピーされた説明: GenericHttpMessageConverter
      指定された型がこのコンバーターで読み取れるかどうかを示します。このメソッドは、ジェネリクス型に関連する追加のチェックを使用して HttpMessageConverter.canRead(Class, MediaType) と同じチェックを実行する必要があります。
      次で指定:
      インターフェース GenericHttpMessageConverter<ObjectSE>canRead 
      オーバーライド:
      クラス AbstractGenericHttpMessageConverter<ObjectSE>canRead 
      パラメーター:
      type - 読みやすさをテストするための(潜在的に汎用)型
      contextClass - ターゲット型のコンテキストクラス。たとえば、ターゲット型がメソッドシグネチャーに表示されるクラス (null にすることができます)
      mediaType - 読み取るメディア型。指定されていない場合は null にすることができます。通常、Content-Type ヘッダーの値。
      戻り値:
      読み取り可能な場合は true。それ以外の場合は false 
    • canWrite

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

      protected void logWarningIfNecessary(TypeSE type, @Nullable ThrowableSE cause)
      ObjectMapper.canDeserialize(com.fasterxml.jackson.databind.JavaType)/ObjectMapper.canSerialize(java.lang.Class<?>) チェックからの特定の例外をログに記録するかどうかを決定します。
      パラメーター:
      type - Jackson が(非)直列化可能性についてテストしたクラス
      cause - 評価する Jackson 投げ例外 (通常、JsonMappingException )
      導入:
      4.3
    • read

      public ObjectSE read(TypeSE type, @Nullable ClassSE<?> contextClass, HttpInputMessage inputMessage) throws IOExceptionSE, HttpMessageNotReadableException
      インターフェースからコピーされた説明: GenericHttpMessageConverter
      指定された入力メッセージから指定された型のオブジェクトを読み取り、それを返します。
      パラメーター:
      type - 返される(潜在的に汎用の)型のオブジェクト。この型は、このインターフェースの canRead メソッドに事前に渡されている必要があります。このメソッドは true を返している必要があります。
      contextClass - ターゲット型のコンテキストクラス。たとえば、ターゲット型がメソッドシグネチャーに表示されるクラス (null にすることができます)
      inputMessage - 読み込む HTTP 入力メッセージ
      戻り値:
      変換されたオブジェクト
      例外:
      IOExceptionSE - I/O エラーの場合
      HttpMessageNotReadableException - 変換エラーの場合
    • readInternal

      protected ObjectSE readInternal(ClassSE<?> clazz, HttpInputMessage inputMessage) throws IOExceptionSE, HttpMessageNotReadableException
      クラスからコピーされた説明: AbstractHttpMessageConverter
      実際のオブジェクトを読み取る抽象テンプレートメソッド。AbstractHttpMessageConverter.read(java.lang.Class<? extends T>, org.springframework.http.HttpInputMessage) から呼び出されます。
      次で指定:
      クラス AbstractHttpMessageConverter<ObjectSE>readInternal 
      パラメーター:
      clazz - 返すオブジェクトの型
      inputMessage - 読み込む HTTP 入力メッセージ
      戻り値:
      変換されたオブジェクト
      例外:
      IOExceptionSE - I/O エラーの場合
      HttpMessageNotReadableException - 変換エラーの場合
    • customizeReader

      protected ObjectReader customizeReader(ObjectReader reader, JavaType javaType)
      サブクラスは、このメソッドを使用して、値の読み取りに使用される ObjectReader をカスタマイズできます。
      パラメーター:
      reader - カスタマイズするリーダーインスタンス
      javaType - 読み取る対象の要素値の型
      戻り値:
      カスタマイズされた ObjectReader
      導入:
      6.0
    • getCharset

      protected CharsetSE getCharset(@Nullable MediaType contentType)
      JSON 入力に使用する文字セットを決定します。

      デフォルトでは、これは入力 MediaType からの文字セット、または UTF-8 にフォールバックします。サブクラスでオーバーライドできます。

      パラメーター:
      contentType - HTTP 入力メッセージのコンテンツ型
      戻り値:
      使用する文字セット
      導入:
      5.1.18
    • writeInternal

      protected void writeInternal(ObjectSE object, @Nullable TypeSE type, HttpOutputMessage outputMessage) throws IOExceptionSE, HttpMessageNotWritableException
      クラスからコピーされた説明: AbstractGenericHttpMessageConverter
      実際の本文を書き込む抽象テンプレートメソッド。AbstractGenericHttpMessageConverter.write(T, java.lang.reflect.Type, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage) から呼び出されます。
      次で指定:
      クラス AbstractGenericHttpMessageConverter<ObjectSE>writeInternal 
      パラメーター:
      object - 出力メッセージに書き込むオブジェクト
      type - 書き込むオブジェクトの型 (null の場合があります)
      outputMessage - 書き込む HTTP 出力メッセージ
      例外:
      IOExceptionSE - I/O エラーの場合
      HttpMessageNotWritableException - 変換エラーの場合
    • customizeWriter

      protected ObjectWriter customizeWriter(ObjectWriter writer, @Nullable JavaType javaType, @Nullable MediaType contentType)
      サブクラスはこのメソッドを使用して、値の書き込みに使用される ObjectWriter をカスタマイズできます。
      パラメーター:
      writer - カスタマイズするライターインスタンス
      javaType - 書き込む要素値の型
      contentType - 選択したメディア型
      戻り値:
      カスタマイズされた ObjectWriter
      導入:
      6.0
    • writePrefix

      protected void writePrefix(JsonGenerator generator, ObjectSE object) throws IOExceptionSE
      メインコンテンツの前にプレフィックスを書きます。
      パラメーター:
      generator - コンテンツの書き込みに使用するジェネレーター。
      object - 出力メッセージに書き込むオブジェクト。
      例外:
      IOExceptionSE
    • writeSuffix

      protected void writeSuffix(JsonGenerator generator, ObjectSE object) throws IOExceptionSE
      メインコンテンツの後にサフィックスを記述します。
      パラメーター:
      generator - コンテンツの書き込みに使用するジェネレーター。
      object - 出力メッセージに書き込むオブジェクト。
      例外:
      IOExceptionSE
    • getJavaType

      protected JavaType getJavaType(TypeSE type, @Nullable ClassSE<?> contextClass)
      指定された型とコンテキストクラスの Jackson JavaType を返します。
      パラメーター:
      type - Jackson JavaType を返す汎用型
      contextClass - ターゲット型のコンテキストクラス。たとえば、ターゲット型がメソッドシグネチャーに表示されるクラス (null にすることができます)
      戻り値:
      Jackson JavaType
    • getJsonEncoding

      protected JsonEncoding getJsonEncoding(@Nullable MediaType contentType)
      指定されたコンテンツ型に使用する JSON エンコーディングを決定します。
      パラメーター:
      contentType - 呼び出し元によってリクエストされたメディア型
      戻り値:
      使用する JSON エンコード (非 null)
    • getDefaultContentType

      @Nullable protected MediaType getDefaultContentType(ObjectSE object) throws IOExceptionSE
      クラスからコピーされた説明: AbstractHttpMessageConverter
      指定された型のデフォルトのコンテンツ型を返します。指定されたコンテンツ型パラメーターなしで AbstractHttpMessageConverter.write(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage) が呼び出されたときに呼び出されます。

      デフォルトでは、supportedMediaTypes プロパティの最初の要素があれば、それを返します。サブクラスでオーバーライドできます。

      オーバーライド:
      クラス AbstractHttpMessageConverter<ObjectSE>getDefaultContentType 
      パラメーター:
      object - コンテンツ型を返す型
      戻り値:
      コンテンツ型、または不明の場合は null 
      例外:
      IOExceptionSE
    • getContentLength

      @Nullable protected LongSE getContentLength(ObjectSE object, @Nullable MediaType contentType) throws IOExceptionSE
      クラスからコピーされた説明: AbstractHttpMessageConverter
      指定された型のコンテンツの長さを返します。

      デフォルトでは、これは null を返します。これは、コンテンツの長さが不明であることを意味します。サブクラスでオーバーライドできます。

      オーバーライド:
      クラス AbstractHttpMessageConverter<ObjectSE>getContentLength 
      パラメーター:
      object - コンテンツの長さを返す型
      戻り値:
      コンテンツの長さ、または不明の場合は null 
      例外:
      IOExceptionSE
    • supportsRepeatableWrites

      protected boolean supportsRepeatableWrites(ObjectSE o)
      クラスからコピーされた説明: AbstractHttpMessageConverter
      このメッセージコンバーターが指定されたオブジェクトを複数回書き込むことができるかどうかを示します。

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

      オーバーライド:
      クラス AbstractHttpMessageConverter<ObjectSE>supportsRepeatableWrites 
      パラメーター:
      o - オブジェクト t
      戻り値:
       t を繰り返し書き込める場合は true。それ以外の場合は false