クラス 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
コンストラクターのサマリー
修飾子コンストラクター説明protected
AbstractJackson2HttpMessageConverter
(ObjectMapper objectMapper) protected
AbstractJackson2HttpMessageConverter
(ObjectMapper objectMapper, MediaType supportedMediaType) protected
AbstractJackson2HttpMessageConverter
(ObjectMapper objectMapper, MediaType... supportedMediaTypes) メソッドのサマリー
修飾子と型メソッド説明boolean
この実装は、指定されたクラスがサポートされているかどうか、およびサポートされているメディア型 に指定されたメディア型が 含まれているかどうかをチェックします。boolean
指定された型がこのコンバーターで読み取れるかどうかを示します。boolean
protected ObjectReader
customizeReader
(ObjectReader reader, JavaType javaType) サブクラスは、このメソッドを使用して、値の読み取りに使用されるObjectReader
をカスタマイズできます。protected ObjectWriter
customizeWriter
(ObjectWriter writer, JavaType javaType, MediaType contentType) サブクラスはこのメソッドを使用して、値の書き込みに使用されるObjectWriter
をカスタマイズできます。protected CharsetSE
getCharset
(MediaType contentType) JSON 入力に使用する文字セットを決定します。protected LongSE
getContentLength
(ObjectSE object, MediaType contentType) 指定された型のコンテンツの長さを返します。protected MediaType
getDefaultContentType
(ObjectSE object) 指定された型のデフォルトのコンテンツ型を返します。protected JavaType
getJavaType
(TypeSE type, ClassSE<?> contextClass) 指定された型とコンテキストクラスの JacksonJavaType
を返します。protected JsonEncoding
getJsonEncoding
(MediaType contentType) 指定されたコンテンツ型に使用する JSON エンコーディングを決定します。ProblemDetail
でサポートされているメディア型を返します。使用中のメインObjectMapper
を返却してください。getObjectMappersForType
(ClassSE<?> clazz) 指定されたクラスの ObjectMapper 登録があれば、それを返します。getSupportedMediaTypes
(ClassSE<?> clazz) 指定されたクラスについて、このコンバーターでサポートされているメディア型のリストを返します。protected void
logWarningIfNecessary
(TypeSE type, ThrowableSE cause) ObjectMapper.canDeserialize(com.fasterxml.jackson.databind.JavaType)
/ObjectMapper.canSerialize(java.lang.Class<?>)
チェックからの特定の例外をログに記録するかどうかを決定します。read
(TypeSE type, ClassSE<?> contextClass, HttpInputMessage inputMessage) 指定された入力メッセージから指定された型のオブジェクトを読み取り、それを返します。protected ObjectSE
readInternal
(ClassSE<?> clazz, HttpInputMessage inputMessage) 実際のオブジェクトを読み取る抽象テンプレートメソッド。void
registerObjectMappersForType
(ClassSE<?> clazz, ConsumerSE<MapSE<MediaType, ObjectMapper>> registrar) 指定されたClass
SE に使用するObjectMapper
インスタンスを構成します。void
setObjectMapper
(ObjectMapper objectMapper) オブジェクト変換に使用するメインObjectMapper
を構成します。void
setPrettyPrint
(boolean prettyPrint) JSON を記述するときにDefaultPrettyPrinter
を使用するかどうか。void
setSupportedMediaTypes
(ListSE<MediaType> supportedMediaTypes) このコンバーターによってサポートされるMediaType
オブジェクトのリストを設定します。protected boolean
このメッセージコンバーターが指定されたオブジェクトを複数回書き込むことができるかどうかを示します。protected void
writeInternal
(ObjectSE object, TypeSE type, HttpOutputMessage outputMessage) 実際の本文を書き込む抽象テンプレートメソッド。protected void
writePrefix
(JsonGenerator generator, ObjectSE object) メインコンテンツの前にプレフィックスを書きます。protected void
writeSuffix
(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) 指定されたClass
SE に使用するObjectMapper
インスタンスを構成します。これは、default
ObjectMapper から逸脱する場合、または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