クラス AbstractJackson2HttpMessageConverter
java.lang.ObjectSE
org.springframework.http.converter.AbstractHttpMessageConverter<T>
org.springframework.http.converter.AbstractGenericHttpMessageConverter<ObjectSE>
org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter
- 実装されているすべてのインターフェース:
GenericHttpMessageConverter<ObjectSE>,HttpMessageConverter<ObjectSE>
- 既知の直属サブクラス
MappingJackson2CborHttpMessageConverter、MappingJackson2HttpMessageConverter、MappingJackson2SmileHttpMessageConverter、MappingJackson2XmlHttpMessageConverter、MappingJackson2YamlHttpMessageConverter
public abstract class AbstractJackson2HttpMessageConverter
extends AbstractGenericHttpMessageConverter<ObjectSE>
Jackson ベースおよびコンテンツ型に依存しない
HttpMessageConverter 実装の抽象基本クラス。- 導入:
- 4.1
- 作成者:
- Arjen Poutsma, Keith Donald, Rossen Stoyanchev, Juergen Hoeller, Sebastien Deleuze, Sam Brannen
- 関連事項:
フィールドのサマリー
フィールドクラス org.springframework.http.converter.AbstractHttpMessageConverter から継承されたフィールド
loggerコンストラクターの概要
コンストラクター修飾子コンストラクター説明protectedAbstractJackson2HttpMessageConverter(ObjectMapper objectMapper) protectedAbstractJackson2HttpMessageConverter(ObjectMapper objectMapper, MediaType supportedMediaType) protectedAbstractJackson2HttpMessageConverter(ObjectMapper objectMapper, MediaType... supportedMediaTypes) メソッドのサマリー
修飾子と型メソッド説明booleanこの実装は、指定されたクラスがサポートされているかどうか、およびサポートされているメディア型 に指定されたメディア型が 含まれているかどうかをチェックします。boolean指定された型がこのコンバーターで読み取れるかどうかを示します。booleanprotected ObjectReadercustomizeReader(ObjectReader reader, JavaType javaType) サブクラスは、このメソッドを使用して、値の読み取りに使用されるObjectReaderをカスタマイズできます。protected ObjectWritercustomizeWriter(ObjectWriter writer, JavaType javaType, MediaType contentType) サブクラスはこのメソッドを使用して、値の書き込みに使用されるObjectWriterをカスタマイズできます。protected CharsetSEgetCharset(MediaType contentType) JSON 入力に使用する文字セットを決定します。protected LongSEgetContentLength(ObjectSE object, MediaType contentType) 指定された型のコンテンツの長さを返します。protected MediaTypegetDefaultContentType(ObjectSE object) 指定された型のデフォルトのコンテンツ型を返します。protected JavaTypegetJavaType(TypeSE type, ClassSE<?> contextClass) 指定された型とコンテキストクラスの JacksonJavaTypeを返します。protected JsonEncodinggetJsonEncoding(MediaType contentType) 指定されたコンテンツ型に使用する JSON エンコーディングを決定します。ProblemDetailでサポートされているメディア型を返します。使用中のメインObjectMapperを返却してください。getObjectMappersForType(ClassSE<?> clazz) 指定されたクラスの ObjectMapper 登録があれば、それを返します。getSupportedMediaTypes(ClassSE<?> clazz) 指定されたクラスについて、このコンバーターでサポートされているメディア型のリストを返します。protected voidlogWarningIfNecessary(TypeSE type, ThrowableSE cause) ObjectMapper.canDeserialize(com.fasterxml.jackson.databind.JavaType)/ObjectMapper.canSerialize(java.lang.Class<?>)チェックからの特定の例外をログに記録するかどうかを決定します。read(TypeSE type, ClassSE<?> contextClass, HttpInputMessage inputMessage) 指定された入力メッセージから指定された型のオブジェクトを読み取り、それを返します。protected ObjectSEreadInternal(ClassSE<?> clazz, HttpInputMessage inputMessage) 実際のオブジェクトを読み取る抽象テンプレートメソッド。voidregisterObjectMappersForType(ClassSE<?> clazz, ConsumerSE<MapSE<MediaType, ObjectMapper>> registrar) 指定されたClassSE に使用するObjectMapperインスタンスを構成します。voidsetObjectMapper(ObjectMapper objectMapper) オブジェクト変換に使用するメインObjectMapperを構成します。voidsetPrettyPrint(boolean prettyPrint) JSON を記述するときにDefaultPrettyPrinterを使用するかどうか。voidsetSupportedMediaTypes(ListSE<MediaType> supportedMediaTypes) このコンバーターによってサポートされるMediaTypeオブジェクトのリストを設定します。protected booleanこのメッセージコンバーターが指定されたオブジェクトを複数回書き込むことができるかどうかを示します。protected voidwriteInternal(ObjectSE object, TypeSE type, HttpOutputMessage outputMessage) 実際の本文を書き込む抽象テンプレートメソッド。protected voidwritePrefix(JsonGenerator generator, ObjectSE object) メインコンテンツの前にプレフィックスを書きます。protected voidwriteSuffix(JsonGenerator generator, ObjectSE object) メインコンテンツの後にサフィックスを記述します。クラス org.springframework.http.converter.AbstractGenericHttpMessageConverter から継承されたメソッド
canWrite, supports, write, writeInternalクラス org.springframework.http.converter.AbstractHttpMessageConverter から継承されたメソッド
addDefaultHeaders, canRead, canWrite, getDefaultCharset, getSupportedMediaTypes, read, setDefaultCharset, writeクラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース org.springframework.http.converter.HttpMessageConverter から継承されたメソッド
getSupportedMediaTypes, read, write
フィールドの詳細
defaultObjectMapper
コンストラクターの詳細
AbstractJackson2HttpMessageConverter
AbstractJackson2HttpMessageConverter
protected AbstractJackson2HttpMessageConverter(ObjectMapper objectMapper, MediaType supportedMediaType) AbstractJackson2HttpMessageConverter
protected AbstractJackson2HttpMessageConverter(ObjectMapper objectMapper, MediaType... supportedMediaTypes)
メソッドの詳細
setSupportedMediaTypes
クラスからコピーされた説明:AbstractHttpMessageConverterこのコンバーターによってサポートされるMediaTypeオブジェクトのリストを設定します。- オーバーライド:
- クラス
AbstractHttpMessageConverter<ObjectSE>のsetSupportedMediaTypes
setObjectMapper
オブジェクト変換に使用するメインObjectMapperを構成します。設定されていない場合、デフォルトのObjectMapperインスタンスが作成されます。カスタム構成の
ObjectMapperを設定することは、JSON 直列化プロセスをさらに制御する 1 つの方法です。例: 特定の型のカスタムシリアライザーを提供する拡張SerializerFactoryを構成できます。直列化プロセスを改善するための別のオプションは、直列化する型に Jackson が提供するアノテーションを使用することです。この場合、カスタム構成の ObjectMapper は不要です。getObjectMapper
使用中のメインObjectMapperを返却してください。registerObjectMappersForType
public void registerObjectMappersForType(ClassSE<?> clazz, ConsumerSE<MapSE<MediaType, ObjectMapper>> registrar) 指定されたClassSE に使用するObjectMapperインスタンスを構成します。これは、defaultObjectMapper から逸脱する場合、またはObjectMapperをMediaTypeによって変化させる場合に役立ちます。注意 : このメソッドを使用すると、特定のクラスのデフォルトの
ObjectMapperおよびsupportedMediaTypesの使用が事実上オフになります。ここで構成されたマッピングは、特定のクラスでサポートする必要があるすべての MediaType をincludeに設定することが重要です。- パラメーター:
clazz- ObjectMapper インスタンスを登録するオブジェクトの型registrar- 指定されたクラスの MediaType と ObjectMapper の関連付けを設定または更新するコンシューマー- 導入:
- 5.3.4
getObjectMappersForType
指定されたクラスの ObjectMapper 登録があれば、それを返します。- パラメーター:
clazz- 登録を検索するクラス- 戻り値:
- MediaType から ObjectMapper への登録が登録されているマップ、または特定のクラスの登録がない場合は空。
- 導入:
- 5.3.4
getSupportedMediaTypes
インターフェースからコピーされた説明:HttpMessageConverter指定されたクラスについて、このコンバーターでサポートされているメディア型のリストを返します。コンバーターが特定のクラスをサポートしていない場合、またはメディア型のサブセットに対してのみサポートしている場合、リストはHttpMessageConverter.getSupportedMediaTypes()とは異なる場合があります。- パラメーター:
clazz- チェックするクラスの型- 戻り値:
- 特定のクラスでサポートされているメディア型のリスト
getMediaTypesForProblemDetail
ProblemDetailでサポートされているメディア型を返します。サブクラスでオーバーライドされない限り、デフォルトでは空のリストです。- 導入:
- 6.0.5
setPrettyPrint
public void setPrettyPrint(boolean prettyPrint) JSON を記述するときにDefaultPrettyPrinterを使用するかどうか。これは、次のようにObjectMapperをセットアップするためのショートカットです。ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationFeature.INDENT_OUTPUT, true); converter.setObjectMapper(mapper);
canRead
クラスからコピーされた説明:AbstractHttpMessageConverterこの実装は、指定されたクラスがサポートされているかどうか、およびサポートされているメディア型 に指定されたメディア型が 含まれているかどうかをチェックします。- 次で指定:
- インターフェース
HttpMessageConverter<ObjectSE>のcanRead - オーバーライド:
- クラス
AbstractHttpMessageConverter<ObjectSE>のcanRead - パラメーター:
clazz- 読み込み可能性をテストするクラスmediaType- 読み取るメディア型(指定しない場合はnullにできます); 通常、Content-Typeヘッダーの値。- 戻り値:
- 読み取り可能な場合は
true。それ以外の場合はfalse
canRead
public boolean canRead(TypeSE type, @Nullable ClassSE<?> contextClass, @Nullable MediaType mediaType) インターフェースからコピーされた説明:GenericHttpMessageConverter指定された型がこのコンバーターで読み取れるかどうかを示します。このメソッドは、ジェネリクス型に関連する追加のチェックを使用してHttpMessageConverter.canRead(Class, MediaType)と同じチェックを実行する必要があります。- 次で指定:
- インターフェース
GenericHttpMessageConverter<ObjectSE>のcanRead - オーバーライド:
- クラス
AbstractGenericHttpMessageConverter<ObjectSE>のcanRead - パラメーター:
type- 読みやすさをテストするための(潜在的に汎用)型contextClass- ターゲット型のコンテキストクラス。たとえば、ターゲット型がメソッドシグネチャーに表示されるクラス (nullにすることができます)mediaType- 読み取るメディア型。指定されていない場合はnullにすることができます。通常、Content-Typeヘッダーの値。- 戻り値:
- 読み取り可能な場合は
true。それ以外の場合はfalse
canWrite
クラスからコピーされた説明:AbstractHttpMessageConverter- 次で指定:
- インターフェース
HttpMessageConverter<ObjectSE>のcanWrite - オーバーライド:
- クラス
AbstractHttpMessageConverter<ObjectSE>のcanWrite - パラメーター:
clazz- 書き込み可能性をテストするクラスmediaType- 書き込むメディア型(指定しない場合はnullにすることができます); 通常、Acceptヘッダーの値。- 戻り値:
- 書き込み可能な場合は
true。それ以外の場合はfalse
logWarningIfNecessary
ObjectMapper.canDeserialize(com.fasterxml.jackson.databind.JavaType)/ObjectMapper.canSerialize(java.lang.Class<?>)チェックからの特定の例外をログに記録するかどうかを決定します。- パラメーター:
type- Jackson が(非)直列化可能性についてテストしたクラスcause- 評価する Jackson 投げ例外 (通常、JsonMappingException)- 導入:
- 4.3
read
public ObjectSE read(TypeSE type, @Nullable ClassSE<?> contextClass, HttpInputMessage inputMessage) throws IOExceptionSE, HttpMessageNotReadableException インターフェースからコピーされた説明:GenericHttpMessageConverter指定された入力メッセージから指定された型のオブジェクトを読み取り、それを返します。- パラメーター:
type- 返される(潜在的に汎用の)型のオブジェクト。この型は、このインターフェースのcanReadメソッドに事前に渡されている必要があります。このメソッドはtrueを返している必要があります。contextClass- ターゲット型のコンテキストクラス。たとえば、ターゲット型がメソッドシグネチャーに表示されるクラス (nullにすることができます)inputMessage- 読み込む HTTP 入力メッセージ- 戻り値:
- 変換されたオブジェクト
- 例外:
IOExceptionSE- I/O エラーの場合HttpMessageNotReadableException- 変換エラーの場合
readInternal
protected ObjectSE readInternal(ClassSE<?> clazz, HttpInputMessage inputMessage) throws IOExceptionSE, HttpMessageNotReadableException クラスからコピーされた説明:AbstractHttpMessageConverter実際のオブジェクトを読み取る抽象テンプレートメソッド。AbstractHttpMessageConverter.read(java.lang.Class<? extends T>, org.springframework.http.HttpInputMessage)から呼び出されます。- 次で指定:
- クラス
AbstractHttpMessageConverter<ObjectSE>のreadInternal - パラメーター:
clazz- 返すオブジェクトの型inputMessage- 読み込む HTTP 入力メッセージ- 戻り値:
- 変換されたオブジェクト
- 例外:
IOExceptionSE- I/O エラーの場合HttpMessageNotReadableException- 変換エラーの場合
customizeReader
サブクラスは、このメソッドを使用して、値の読み取りに使用されるObjectReaderをカスタマイズできます。- パラメーター:
reader- カスタマイズするリーダーインスタンスjavaType- 読み取る対象の要素値の型- 戻り値:
- カスタマイズされた
ObjectReader - 導入:
- 6.0
getCharset
JSON 入力に使用する文字セットを決定します。デフォルトでは、これは入力
MediaTypeからの文字セット、またはUTF-8にフォールバックします。サブクラスでオーバーライドできます。- パラメーター:
contentType- HTTP 入力メッセージのコンテンツ型- 戻り値:
- 使用する文字セット
- 導入:
- 5.1.18
writeInternal
protected void writeInternal(ObjectSE object, @Nullable TypeSE type, HttpOutputMessage outputMessage) throws IOExceptionSE, HttpMessageNotWritableException クラスからコピーされた説明:AbstractGenericHttpMessageConverter実際の本文を書き込む抽象テンプレートメソッド。AbstractGenericHttpMessageConverter.write(T, java.lang.reflect.Type, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage)から呼び出されます。- 次で指定:
- クラス
AbstractGenericHttpMessageConverter<ObjectSE>のwriteInternal - パラメーター:
object- 出力メッセージに書き込むオブジェクトtype- 書き込むオブジェクトの型 (nullの場合があります)outputMessage- 書き込む HTTP 出力メッセージ- 例外:
IOExceptionSE- I/O エラーの場合HttpMessageNotWritableException- 変換エラーの場合
customizeWriter
protected ObjectWriter customizeWriter(ObjectWriter writer, @Nullable JavaType javaType, @Nullable MediaType contentType) サブクラスはこのメソッドを使用して、値の書き込みに使用されるObjectWriterをカスタマイズできます。- パラメーター:
writer- カスタマイズするライターインスタンスjavaType- 書き込む要素値の型contentType- 選択したメディア型- 戻り値:
- カスタマイズされた
ObjectWriter - 導入:
- 6.0
writePrefix
メインコンテンツの前にプレフィックスを書きます。- パラメーター:
generator- コンテンツの書き込みに使用するジェネレーター。object- 出力メッセージに書き込むオブジェクト。- 例外:
IOExceptionSE
writeSuffix
メインコンテンツの後にサフィックスを記述します。- パラメーター:
generator- コンテンツの書き込みに使用するジェネレーター。object- 出力メッセージに書き込むオブジェクト。- 例外:
IOExceptionSE
getJavaType
指定された型とコンテキストクラスの JacksonJavaTypeを返します。- パラメーター:
type- Jackson JavaType を返す汎用型contextClass- ターゲット型のコンテキストクラス。たとえば、ターゲット型がメソッドシグネチャーに表示されるクラス (nullにすることができます)- 戻り値:
- Jackson JavaType
getJsonEncoding
指定されたコンテンツ型に使用する JSON エンコーディングを決定します。- パラメーター:
contentType- 呼び出し元によってリクエストされたメディア型- 戻り値:
- 使用する JSON エンコード (非
null)
getDefaultContentType
クラスからコピーされた説明:AbstractHttpMessageConverter指定された型のデフォルトのコンテンツ型を返します。指定されたコンテンツ型パラメーターなしでAbstractHttpMessageConverter.write(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage)が呼び出されたときに呼び出されます。デフォルトでは、
supportedMediaTypesプロパティの最初の要素があれば、それを返します。サブクラスでオーバーライドできます。- オーバーライド:
- クラス
AbstractHttpMessageConverter<ObjectSE>のgetDefaultContentType - パラメーター:
object- コンテンツ型を返す型- 戻り値:
- コンテンツ型、または不明の場合は
null - 例外:
IOExceptionSE
getContentLength
@Nullable protected LongSE getContentLength(ObjectSE object, @Nullable MediaType contentType) throws IOExceptionSE クラスからコピーされた説明:AbstractHttpMessageConverter指定された型のコンテンツの長さを返します。デフォルトでは、これは
nullを返します。これは、コンテンツの長さが不明であることを意味します。サブクラスでオーバーライドできます。- オーバーライド:
- クラス
AbstractHttpMessageConverter<ObjectSE>のgetContentLength - パラメーター:
object- コンテンツの長さを返す型- 戻り値:
- コンテンツの長さ、または不明の場合は
null - 例外:
IOExceptionSE
supportsRepeatableWrites
クラスからコピーされた説明:AbstractHttpMessageConverterこのメッセージコンバーターが指定されたオブジェクトを複数回書き込むことができるかどうかを示します。デフォルトの実装は
falseを返します。- オーバーライド:
- クラス
AbstractHttpMessageConverter<ObjectSE>のsupportsRepeatableWrites - パラメーター:
o- オブジェクト t- 戻り値:
-
tを繰り返し書き込める場合はtrue。それ以外の場合はfalse