public class ProtobufEncoder extends ProtobufCodecSupport implements HttpMessageEncoder<com.google.protobuf.Message>
Message を書き込む Encoder。Flux は、各メッセージのサイズがメッセージ自体の前に指定された、区切られた Protobuf メッセージを使用して直列化されます。単一の値は、通常の Protobuf メッセージ形式 (メッセージの前にサイズが付加されない) を使用して直列化されます。
Message Java クラスを生成するには、protoc バイナリをインストールする必要があります。
このエンコーダーには Protobuf 3 以降が必要で、公式 "com.google.protobuf:protobuf-java" ライブラリで "application/x-protobuf" および "application/octet-stream" をサポートしています。
ProtobufDecoder| コンストラクターと説明 |
|---|
ProtobufEncoder() |
| 修飾子と型 | メソッドと説明 |
|---|---|
boolean | canEncode(ResolvableType elementType, MimeType mimeType) エンコーダが特定のソース要素型と出力ストリームの MIME 型をサポートするかどうか。 |
reactor.core.publisher.Flux<DataBuffer> | encode(Publisher<? extends com.google.protobuf.Message> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, MimeType mimeType, MapSE<StringSE, ObjectSE> hints) 型 T のオブジェクトのストリームを DataBuffer 出力ストリームにエンコードします。 |
DataBuffer | encodeValue(com.google.protobuf.Message message, DataBufferFactory bufferFactory, ResolvableType valueType, MimeType mimeType, MapSE<StringSE, ObjectSE> hints) 型 T のオブジェクトをデータバッファにエンコードします。 |
ListSE<MimeType> | getEncodableMimeTypes() このエンコーダーでサポートされている MIME 型のリストを返します。 |
ListSE<MediaType> | getStreamingMediaTypes() 入力ストリームの最後で自動的にフラッシュを実行する必要がある「ストリーミング」メディア型を返します。 |
getMimeTypes, supportsMimeTypecloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEgetEncodeHintsgetEncodableMimeTypespublic boolean canEncode(ResolvableType elementType, @Nullable MimeType mimeType)
Encoderpublic 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)
EncoderT のオブジェクトのストリームを 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 - エンコード方法に関する追加情報 public DataBuffer encodeValue(com.google.protobuf.Message message, DataBufferFactory bufferFactory, ResolvableType valueType, @Nullable MimeType mimeType, @Nullable MapSE<StringSE,ObjectSE> hints)
Encoder デフォルトでは、このメソッドは UnsupportedOperationExceptionSE を発生させ、一部のエンコーダーは単一のバッファーを作成できないか、同期的に作成できないことが予想されます(例: Resource のエンコード)。
Encoder<com.google.protobuf.Message> の encodeValue message - エンコードされる値 bufferFactory - 出力 DataBuffer を作成するため valueType - エンコードされる値の型 mimeType - 出力コンテンツの MIME 型 (オプション)hints - エンコード方法に関する追加情報 public ListSE<MediaType> getStreamingMediaTypes()
HttpMessageEncoderHttpMessageEncoder<com.google.protobuf.Message> の getStreamingMediaTypes public ListSE<MimeType> getEncodableMimeTypes()
EncodercanEncode(elementType, null) を介して保護する必要があります。このリストでは、特定の要素型でのみサポートされている MIME 型を除外することもできます。または、Encoder.getEncodableMimeTypes(ResolvableType) を使用してより正確なリストを作成します。Encoder<com.google.protobuf.Message> の getEncodableMimeTypes