クラス AbstractJackson2Encoder

java.lang.ObjectSE
org.springframework.http.codec.json.Jackson2CodecSupport
org.springframework.http.codec.json.AbstractJackson2Encoder
実装されたすべてのインターフェース:
Encoder<ObjectSE>HttpMessageEncoder<ObjectSE>
既知の直属サブクラス
Jackson2CborEncoderJackson2JsonEncoderJackson2SmileEncoder

public abstract class AbstractJackson2Encoder extends Jackson2CodecSupport implements HttpMessageEncoder<ObjectSE>
Jackson 2.x エンコーディングのサポートメソッドを提供する基本クラス。ストリーミング以外のユースケースでは、パフォーマンス上の理由から、直列化の前に Flux 要素が ListSE に収集されます。
導入:
5.0
作成者:
Sebastien Deleuze, Arjen Poutsma
  • コンストラクターの詳細

    • AbstractJackson2Encoder

      protected AbstractJackson2Encoder(ObjectMapper mapper, MimeType... mimeTypes)
      使用する Jackson ObjectMapper を持つコンストラクター。
  • メソッドの詳細

    • setStreamingMediaTypes

      public void setStreamingMediaTypes(ListSE<MediaType> mediaTypes)
      ストリームの最後で自動的にフラッシュを実行する「ストリーミング」メディア型を設定します。
    • canEncode

      public boolean canEncode(ResolvableType elementType, @Nullable MimeType mimeType)
      インターフェースからコピーされた説明: Encoder
      エンコーダが特定のソース要素型と出力ストリームの MIME 型をサポートするかどうか。
      次で指定:
      インターフェース Encoder<ObjectSE>canEncode 
      パラメーター:
      elementType - ソースストリーム内の要素の型
      mimeType - 出力ストリームの MIME 型 (指定しない場合は null にすることができます)
      戻り値:
      サポートされている場合は true、サポートされていない場合は false 
    • encode

      public reactor.core.publisher.Flux<DataBuffer> encode(Publisher<?> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable MapSE<StringSE,ObjectSE> hints)
      インターフェースからコピーされた説明: Encoder
      型 T のオブジェクトのストリームを DataBuffer 出力ストリームにエンコードします。
      次で指定:
      インターフェース Encoder<ObjectSE>encode 
      パラメーター:
      inputStream - エンコードするオブジェクトの入力ストリーム。入力を要素のストリームとしてではなく単一の値としてエンコードする必要がある場合は、Mono のインスタンスを使用する必要があります。
      bufferFactory - 出力ストリーム DataBuffer を作成するための
      elementType - 入力ストリーム内の要素の予想される型。この型は、事前に Encoder.canEncode(org.springframework.core.ResolvableType, org.springframework.util.MimeType) メソッドに渡されていなければならず、true を返さなければなりません。
      mimeType - 出力コンテンツの MIME 型 (オプション)
      hints - エンコード方法に関する追加情報
      戻り値:
      出力ストリーム
    • encodeValue

      public DataBuffer encodeValue(ObjectSE value, DataBufferFactory bufferFactory, ResolvableType valueType, @Nullable MimeType mimeType, @Nullable MapSE<StringSE,ObjectSE> hints)
      インターフェースからコピーされた説明: Encoder
      型 T のオブジェクトをデータバッファーにエンコードします。これは、個別のメッセージ(またはイベント)が完全に集約された形式で個別にエンコードおよび処理されるシナリオで役立ちます。

      デフォルトでは、このメソッドは UnsupportedOperationExceptionSE を発生させ、一部のエンコーダーは単一のバッファーを作成できないか、同期的に作成できないことが予想されます(例: Resource のエンコード)。

      次で指定:
      インターフェース Encoder<ObjectSE>encodeValue 
      パラメーター:
      value - エンコードされる値
      bufferFactory - 出力 DataBuffer を作成するため
      valueType - エンコードされる値の型
      mimeType - 出力コンテンツの MIME 型 (オプション)
      hints - エンコード方法に関する追加情報
      戻り値:
      エンコードされたコンテンツ
    • customizeWriter

      protected ObjectWriter customizeWriter(ObjectWriter writer, @Nullable MimeType mimeType, ResolvableType elementType, @Nullable MapSE<StringSE,ObjectSE> hints)
      サブクラスは、このメソッドを使用して、値の書き込みに使用される ObjectWriter をカスタマイズできます。
      パラメーター:
      writer - カスタマイズするライターインスタンス
      mimeType - 選択した MIME 型
      elementType - 書き込む要素値の型
      hints - 直列化のヒントを含むマップ。Reactor コンテキストは、利用可能な場合、キー ContextView.class.getName() でアクセスできます。
      戻り値:
      使用するカスタマイズされた ObjectWriter 
    • getStreamingMediaTypeSeparator

      @Nullable protected byte[] getStreamingMediaTypeSeparator(@Nullable MimeType mimeType)
      指定された mime 型に使用するセパレータを返します。

      デフォルトでは、指定された mime 型が構成済みの streaming mime 型のいずれかである場合、このメソッドは改行 "\n" を返します。

      導入:
      5.3
    • getJsonEncoding

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

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

      public ListSE<MimeType> getEncodableMimeTypes(ResolvableType elementType)
      インターフェースからコピーされた説明: Encoder
      指定された型の要素について、このエンコーダーでサポートされている MIME 型のリストを返します。このリストは、エンコーダーが要素型をサポートしていない場合、または MIME 型のサブセットに対してのみサポートしている場合、Encoder.getEncodableMimeTypes() とは異なる場合があります。
      次で指定:
      インターフェース Encoder<ObjectSE>getEncodableMimeTypes 
      パラメーター:
      elementType - エンコーディングをチェックする要素の型
      戻り値:
      特定の要素型でサポートされている MIME 型のリスト
    • getStreamingMediaTypes

      public ListSE<MediaType> getStreamingMediaTypes()
      インターフェースからコピーされた説明: HttpMessageEncoder
      入力ストリームの最後で自動的にフラッシュを実行する必要がある「ストリーミング」メディア型を返します。
      次で指定:
      インターフェース HttpMessageEncoder<ObjectSE>getStreamingMediaTypes 
    • getEncodeHints

      public MapSE<StringSE,ObjectSE> getEncodeHints(@Nullable ResolvableType actualType, ResolvableType elementType, @Nullable MediaType mediaType, ServerHttpRequest request, ServerHttpResponse response)
      インターフェースからコピーされた説明: HttpMessageEncoder
      サーバーリクエストまたはターゲットコントローラーメソッドパラメーターのアノテーションに基づいてデコードヒントを取得します。
      次で指定:
      インターフェース HttpMessageEncoder<ObjectSE>getEncodeHints 
      パラメーター:
      actualType - エンコードする実際のソース型。おそらくリアクティブラッパーであり、MethodParameter からソースされます。つまり、メソッドアノテーションへのアクセスを提供します。
      elementType - エンコードしようとしている Flux/Mono 内の要素型。
      request - 現在のリクエスト
      response - 現在のレスポンス
      戻り値:
      ヒントがあるマップ、空の場合もある
    • getAnnotation

      @Nullable protected <A extends AnnotationSE> A getAnnotation(MethodParameter parameter, ClassSE<A> annotType)
      次で指定:
      クラス Jackson2CodecSupportgetAnnotation