クラス ProtobufDecoder

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

public class ProtobufDecoder extends ProtobufCodecSupport implements Decoder<com.google.protobuf.Message>
Google プロトコルバッファを使用して Message を読み取る Decoder

decode(Publisher, ResolvableType, MimeType, Map) を介してデシリアライズされた Flux は、各メッセージのサイズがメッセージ自体の前に指定された、区切られたProtobuf メッセージを使用することが想定されています。decodeToMono(Publisher, ResolvableType, MimeType, Map) を介してデシリアライズされた単一の値は、通常の Protobuf メッセージ形式 (メッセージの前にサイズが付加されない) を使用することが想定されています。

Protobuf メッセージのデフォルトインスタンスは空のバイト配列を生成するため、ネットワーク経由で送信される Mono.just(Msg.getDefaultInstance()) は空の Mono としてデシリアライズされます。

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

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

導入:
5.1
作成者:
Sebastien Deleuze
関連事項:
  • フィールドの詳細

    • DEFAULT_MESSAGE_MAX_SIZE

      protected static final int DEFAULT_MESSAGE_MAX_SIZE
      メッセージを集約するためのデフォルトの最大サイズ。
      関連事項:
  • コンストラクターの詳細

    • ProtobufDecoder

      public ProtobufDecoder()
      新しい ProtobufDecoder を作成します。
    • ProtobufDecoder

      public ProtobufDecoder(com.google.protobuf.ExtensionRegistry extensionRegistry)
      メッセージ拡張の登録を許可する初期化子を使用して、新しい ProtobufDecoder を作成します。
      パラメーター:
      extensionRegistry - メッセージ拡張レジストリ
  • メソッドの詳細

    • setMaxMessageSize

      public void setMaxMessageSize(int maxMessageSize)
      メッセージごとに許可される最大サイズ。

      デフォルトでは、これは 256K に設定されています。

      パラメーター:
      maxMessageSize - メッセージごとの最大サイズ、または無制限の場合は -1
    • getMaxMessageSize

      public int getMaxMessageSize()
      configured メッセージのサイズ制限を返します。
      導入:
      5.1.11
    • canDecode

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

      public reactor.core.publisher.Flux<com.google.protobuf.Message> decode(Publisher<DataBuffer> inputStream, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable MapSE<StringSE,ObjectSE> hints)
      インターフェースからコピーされた説明: Decoder
      DataBuffer 入力ストリームを T の Flux にデコードします。
      次で指定:
      インターフェース Decoder<com.google.protobuf.Message>decode 
      パラメーター:
      inputStream - デコードする DataBuffer 入力ストリーム
      elementType - 出力ストリーム内の要素の予想される型。この型は、事前に Decoder.canDecode(org.springframework.core.ResolvableType, org.springframework.util.MimeType) メソッドに渡されている必要があり、true を返している必要があります。
      mimeType - 入力ストリームに関連付けられた MIME 型 (オプション)
      hints - デコード方法に関する追加情報
      戻り値:
      デコードされた要素を含む出力ストリーム
    • decodeToMono

      public reactor.core.publisher.Mono<com.google.protobuf.Message> decodeToMono(Publisher<DataBuffer> inputStream, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable MapSE<StringSE,ObjectSE> hints)
      インターフェースからコピーされた説明: Decoder
      DataBuffer 入力ストリームを T の Mono にデコードします。
      次で指定:
      インターフェース Decoder<com.google.protobuf.Message>decodeToMono 
      パラメーター:
      inputStream - デコードする DataBuffer 入力ストリーム
      elementType - 出力ストリーム内の要素の予想される型。この型は、事前に Decoder.canDecode(org.springframework.core.ResolvableType, org.springframework.util.MimeType) メソッドに渡されている必要があり、true を返している必要があります。
      mimeType - 入力ストリームに関連付けられた MIME 型 (オプション)
      hints - デコード方法に関する追加情報
      戻り値:
      デコードされた要素を持つ出力ストリーム
    • decode

      public com.google.protobuf.Message decode(DataBuffer dataBuffer, ResolvableType targetType, @Nullable MimeType mimeType, @Nullable MapSE<StringSE,ObjectSE> hints) throws DecodingException
      インターフェースからコピーされた説明: Decoder
      データバッファーを型 T のオブジェクトにデコードします。これは、個別のメッセージ(またはイベント)が完全に集約された形式で個別にデコードおよび処理されるシナリオで役立ちます。
      次で指定:
      インターフェース Decoder<com.google.protobuf.Message>decode 
      パラメーター:
      dataBuffer - デコードする DataBuffer 
      targetType - 予想される出力型
      mimeType - データに関連付けられた MIME 型
      hints - デコード方法に関する追加情報
      戻り値:
      デコードされた値、おそらく null
      例外:
      DecodingException
    • getDecodableMimeTypes

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