クラス 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) を介してデシリアライズされたフラックスは、メッセージ自体の前に指定された各メッセージのサイズで区切られた 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 型のリスト