クラス AbstractJackson2Encoder
java.lang.ObjectSE
org.springframework.http.codec.json.Jackson2CodecSupport
org.springframework.http.codec.json.AbstractJackson2Encoder
- 実装されたすべてのインターフェース:
Encoder<ObjectSE>
,HttpMessageEncoder<ObjectSE>
public abstract class AbstractJackson2Encoder
extends Jackson2CodecSupport
implements HttpMessageEncoder<ObjectSE>
Jackson 2.x エンコーディングのサポートメソッドを提供する基本クラス。ストリーミング以外のユースケースでは、パフォーマンス上の理由から、直列化の前に
Flux
要素が List
SE に収集されます。- 導入:
- 5.0
- 作成者:
- Sebastien Deleuze, Arjen Poutsma
フィールドのサマリー
クラス org.springframework.http.codec.json.Jackson2CodecSupport から継承されたフィールド
JSON_VIEW_HINT, logger
コンストラクターの概要
コンストラクター修飾子コンストラクター説明protected
AbstractJackson2Encoder
(ObjectMapper mapper, MimeType... mimeTypes) 使用する JacksonObjectMapper
を持つコンストラクター。メソッドのサマリー
修飾子と型メソッド説明boolean
canEncode
(ResolvableType elementType, MimeType mimeType) エンコーダが特定のソース要素型と出力ストリームの MIME 型をサポートするかどうか。protected ObjectWriter
customizeWriter
(ObjectWriter writer, MimeType mimeType, ResolvableType elementType, MapSE<StringSE, ObjectSE> hints) サブクラスは、このメソッドを使用して、値の書き込みに使用されるObjectWriter
をカスタマイズできます。reactor.core.publisher.Flux<DataBuffer>
encode
(Publisher<?> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, MimeType mimeType, MapSE<StringSE, ObjectSE> hints) 型T
のオブジェクトのストリームをDataBuffer
出力ストリームにエンコードします。encodeValue
(ObjectSE value, DataBufferFactory bufferFactory, ResolvableType valueType, MimeType mimeType, MapSE<StringSE, ObjectSE> hints) 型 T のオブジェクトをデータバッファにエンコードします。protected <A extends AnnotationSE>
AgetAnnotation
(MethodParameter parameter, ClassSE<A> annotType) このエンコーダーでサポートされている MIME 型のリストを返します。getEncodableMimeTypes
(ResolvableType elementType) 指定された型の要素について、このエンコーダーでサポートされている MIME 型のリストを返します。getEncodeHints
(ResolvableType actualType, ResolvableType elementType, MediaType mediaType, ServerHttpRequest request, ServerHttpResponse response) サーバーリクエストまたはターゲットコントローラーメソッドパラメーターのアノテーションに基づいてデコードヒントを取得します。protected JsonEncoding
getJsonEncoding
(MimeType mimeType) 指定された MIME 型に使用する JSON エンコーディングを決定します。入力ストリームの最後で自動的にフラッシュを実行する必要がある「ストリーミング」メディア型を返します。protected byte[]
getStreamingMediaTypeSeparator
(MimeType mimeType) 指定された mime 型に使用するセパレータを返します。void
setStreamingMediaTypes
(ListSE<MediaType> mediaTypes) ストリームの最後で自動的にフラッシュを実行する「ストリーミング」メディア型を設定します。クラス org.springframework.http.codec.json.Jackson2CodecSupport から継承されたメソッド
getHints, getJavaType, getMediaTypesForProblemDetail, getMimeTypes, getMimeTypes, getObjectMapper, getObjectMapperRegistrations, getObjectMappersForType, getParameter, logWarningIfNecessary, registerObjectMappersForType, selectObjectMapper, setObjectMapper, supportsMimeType
コンストラクターの詳細
AbstractJackson2Encoder
使用する JacksonObjectMapper
を持つコンストラクター。
メソッドの詳細
setStreamingMediaTypes
ストリームの最後で自動的にフラッシュを実行する「ストリーミング」メディア型を設定します。canEncode
インターフェースからコピーされた説明:Encoder
エンコーダが特定のソース要素型と出力ストリームの MIME 型をサポートするかどうか。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 のオブジェクトをデータバッファーにエンコードします。これは、個別のメッセージ(またはイベント)が完全に集約された形式で個別にエンコードおよび処理されるシナリオで役立ちます。デフォルトでは、このメソッドは
UnsupportedOperationException
SE を発生させ、一部のエンコーダーは単一のバッファーを作成できないか、同期的に作成できないことが予想されます(例: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
指定された mime 型に使用するセパレータを返します。デフォルトでは、指定された mime 型が構成済みの
streaming
mime 型のいずれかである場合、このメソッドは改行"\n"
を返します。- 導入:
- 5.3
getJsonEncoding
指定された MIME 型に使用する JSON エンコーディングを決定します。- パラメーター:
mimeType
- 呼び出し元によってリクエストされた MIME 型- 戻り値:
- 使用する JSON エンコード (非
null
) - 導入:
- 5.0.5
getEncodableMimeTypes
インターフェースからコピーされた説明:Encoder
このエンコーダーでサポートされている MIME 型のリストを返します。このリストは、考えられるすべてのターゲット要素型に適用されるとは限らないため、このメソッドの呼び出しは通常、canEncode(elementType, null)
を介して保護する必要があります。このリストでは、特定の要素型でのみサポートされている MIME 型を除外することもできます。または、Encoder.getEncodableMimeTypes(ResolvableType)
を使用してより正確なリストを作成します。- 次で指定:
- インターフェース
Encoder<ObjectSE>
のgetEncodableMimeTypes
- 戻り値:
- サポートされている MIME 型のリスト
getEncodableMimeTypes
インターフェースからコピーされた説明:Encoder
指定された型の要素について、このエンコーダーでサポートされている MIME 型のリストを返します。このリストは、エンコーダーが要素型をサポートしていない場合、または MIME 型のサブセットに対してのみサポートしている場合、Encoder.getEncodableMimeTypes()
とは異なる場合があります。- 次で指定:
- インターフェース
Encoder<ObjectSE>
のgetEncodableMimeTypes
- パラメーター:
elementType
- エンコーディングをチェックする要素の型- 戻り値:
- 特定の要素型でサポートされている MIME 型のリスト
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) - 次で指定:
- クラス
Jackson2CodecSupport
のgetAnnotation