クラス ProtobufEncoder

java.lang.ObjectSE
org.springframework.http.codec.protobuf.ProtobufCodecSupport
org.springframework.http.codec.protobuf.ProtobufEncoder
実装されたすべてのインターフェース:
Encoder<com.google.protobuf.Message>HttpMessageEncoder<com.google.protobuf.Message>

public class ProtobufEncoder extends ProtobufCodecSupport implements HttpMessageEncoder<com.google.protobuf.Message>
Google プロトコルバッファを使用して Message を書き込む Encoder

Flux は、メッセージ自体の前に指定された各メッセージのサイズで区切られた Protobuf メッセージを使用して直列化されます。単一の値は、通常の Protobuf メッセージ形式を使用して直列化されます(メッセージの前にサイズが追加されることはありません)。

Message Java クラスを生成するには、protoc バイナリをインストールする必要があります。

このエンコーダーには Protobuf 3 以降が必要で、公式 "com.google.protobuf:protobuf-java" ライブラリで "application/x-protobuf" および "application/octet-stream" をサポートしています。

導入:
5.1
作成者:
Sebastien Deleuze
関連事項:
  • コンストラクターの詳細

    • ProtobufEncoder

      public ProtobufEncoder()
  • メソッドの詳細

    • canEncode

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

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

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

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

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

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

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