public abstract class AbstractJackson2HttpMessageConverter extends AbstractGenericHttpMessageConverter<ObjectSE>
HttpMessageConverter 実装の抽象基本クラス。Spring 5.3 以降、Jackson 2.9 から 2.12 と互換性があります。
MappingJackson2HttpMessageConverter| 修飾子と型 | フィールドと説明 |
|---|---|
static CharsetSE | DEFAULT_CHARSET 使用すべきではありません。 |
protected ObjectMapper | defaultObjectMapper |
logger| 修飾子 | コンストラクターと説明 |
|---|---|
protected | AbstractJackson2HttpMessageConverter(ObjectMapper objectMapper) |
protected | AbstractJackson2HttpMessageConverter(ObjectMapper objectMapper, MediaType... supportedMediaTypes) |
protected | AbstractJackson2HttpMessageConverter(ObjectMapper objectMapper, MediaType supportedMediaType) |
| 修飾子と型 | メソッドと説明 |
|---|---|
boolean | canRead(ClassSE<?> clazz, MediaType mediaType) この実装は、指定されたクラスがサポートされているかどうか、およびサポートされているメディア型 に指定されたメディア型が 含まれているかどうかをチェックします。 |
boolean | canRead(TypeSE type, ClassSE<?> contextClass, MediaType mediaType) 指定された型がこのコンバーターで読み取れるかどうかを示します。 |
boolean | canWrite(ClassSE<?> clazz, MediaType mediaType) |
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) 指定された型とコンテキストクラスの Jackson JavaType を返します。 |
protected JsonEncoding | getJsonEncoding(MediaType contentType) 指定されたコンテンツ型に使用する JSON エンコーディングを決定します。 |
ObjectMapper | getObjectMapper() 使用中のメイン ObjectMapper を返却してください。 |
MapSE<MediaType, ObjectMapper> | getObjectMappersForType(ClassSE<?> clazz) 指定されたクラスの ObjectMapper 登録があれば、それを返します。 |
ListSE<MediaType> | getSupportedMediaTypes(ClassSE<?> clazz) 指定されたクラスについて、このコンバーターでサポートされているメディア型のリストを返します。 |
protected void | logWarningIfNecessary(TypeSE type, ThrowableSE cause)ObjectMapper.canDeserialize(com.fasterxml.jackson.databind.JavaType)/ObjectMapper.canSerialize(java.lang.Class<?>) チェックからの特定の例外をログに記録するかどうかを決定します。 |
ObjectSE | read(TypeSE type, ClassSE<?> contextClass, HttpInputMessage inputMessage) 指定された入力メッセージから指定された型のオブジェクトを読み取り、それを返します。 |
protected ObjectSE | readInternal(ClassSE<?> clazz, HttpInputMessage inputMessage) 実際のオブジェクトを読み取る抽象テンプレートメソッド。 |
void | registerObjectMappersForType(ClassSE<?> clazz, ConsumerSE<MapSE<MediaType, ObjectMapper>> registrar) 指定された ClassSE に使用する ObjectMapper インスタンスを構成します。 |
void | setObjectMapper(ObjectMapper objectMapper) オブジェクト変換に使用するメイン ObjectMapper を構成します。 |
void | setPrettyPrint(boolean prettyPrint)JSON を記述するときに DefaultPrettyPrinter を使用するかどうか。 |
protected void | writeInternal(ObjectSE object, TypeSE type, HttpOutputMessage outputMessage) 実際の本文を書き込む抽象テンプレートメソッド。 |
protected void | writePrefix(JsonGenerator generator, ObjectSE object) メインコンテンツの前にプレフィックスを書きます。 |
protected void | writeSuffix(JsonGenerator generator, ObjectSE object) メインコンテンツの後にサフィックスを記述します。 |
canWrite, supports, write, writeInternaladdDefaultHeaders, canRead, canWrite, getDefaultCharset, getSupportedMediaTypes, read, setDefaultCharset, setSupportedMediaTypes, writecloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEgetSupportedMediaTypes, read, write@Nullable @DeprecatedSE public static final CharsetSE DEFAULT_CHARSET
protected ObjectMapper defaultObjectMapper
protected AbstractJackson2HttpMessageConverter(ObjectMapper objectMapper)
protected AbstractJackson2HttpMessageConverter(ObjectMapper objectMapper, MediaType supportedMediaType)
protected AbstractJackson2HttpMessageConverter(ObjectMapper objectMapper, MediaType... supportedMediaTypes)
public void setObjectMapper(ObjectMapper objectMapper)
ObjectMapper を構成します。設定されていない場合、デフォルトの ObjectMapper インスタンスが作成されます。 カスタム構成の ObjectMapper を設定することは、JSON 直列化プロセスをさらに制御する 1 つの方法です。例: 特定の型のカスタムシリアライザーを提供する拡張 SerializerFactory を構成できます。直列化プロセスを改善するための別のオプションは、直列化する型に Jackson が提供するアノテーションを使用することです。この場合、カスタム構成の ObjectMapper は不要です。
public ObjectMapper getObjectMapper()
ObjectMapper を返却してください。public void registerObjectMappersForType(ClassSE<?> clazz, ConsumerSE<MapSE<MediaType,ObjectMapper>> registrar)
ClassSE に使用する ObjectMapper インスタンスを構成します。これは、default ObjectMapper から逸脱する場合、または ObjectMapper を MediaType によって変化させる場合に役立ちます。 注意 : このメソッドを使用すると、特定のクラスのデフォルトの ObjectMapper および supportedMediaTypes の使用が事実上オフになります。ここで構成されたマッピングは、特定のクラスでサポートする必要があるすべての MediaType を include に設定することが重要です。
clazz - ObjectMapper インスタンスを登録するオブジェクトの型 registrar - 指定されたクラスの MediaType と ObjectMapper の関連付けを設定または更新するコンシューマー @Nullable public MapSE<MediaType,ObjectMapper> getObjectMappersForType(ClassSE<?> clazz)
clazz - 登録を検索するクラス public ListSE<MediaType> getSupportedMediaTypes(ClassSE<?> clazz)
HttpMessageConverterHttpMessageConverter.getSupportedMediaTypes() とは異なる場合があります。clazz - チェックするクラスの型 public void setPrettyPrint(boolean prettyPrint)
DefaultPrettyPrinter を使用するかどうか。これは、次のように ObjectMapper をセットアップするためのショートカットです。ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationFeature.INDENT_OUTPUT, true); converter.setObjectMapper(mapper);
public boolean canRead(ClassSE<?> clazz, @Nullable MediaType mediaType)
AbstractHttpMessageConverterHttpMessageConverter<ObjectSE> の canRead AbstractHttpMessageConverter<ObjectSE> の canRead clazz - 読み込み可能性をテストするクラス mediaType - 読み取るメディア型(指定しない場合は null にできます); 通常、Content-Type ヘッダーの値。true。それ以外の場合は false public boolean canRead(TypeSE type, @Nullable ClassSE<?> contextClass, @Nullable MediaType mediaType)
GenericHttpMessageConverterHttpMessageConverter.canRead(Class, MediaType) と同じチェックを実行する必要があります。GenericHttpMessageConverter<ObjectSE> の canRead AbstractGenericHttpMessageConverter<ObjectSE> の canRead type - 読みやすさをテストするための(潜在的に汎用)型 contextClass - ターゲット型のコンテキストクラス。たとえば、ターゲット型がメソッドシグネチャーに表示されるクラス (null にすることができます)mediaType - 読み取るメディア型。指定されていない場合は null にすることができます。通常、Content-Type ヘッダーの値。true。それ以外の場合は false public boolean canWrite(ClassSE<?> clazz, @Nullable MediaType mediaType)
AbstractHttpMessageConverterHttpMessageConverter<ObjectSE> の canWrite AbstractHttpMessageConverter<ObjectSE> の canWrite clazz - 書き込み可能性をテストするクラス mediaType - 書き込むメディア型(指定しない場合は null にすることができます); 通常、Accept ヘッダーの値。true。それ以外の場合は false protected void logWarningIfNecessary(TypeSE type, @Nullable ThrowableSE cause)
ObjectMapper.canDeserialize(com.fasterxml.jackson.databind.JavaType)/ObjectMapper.canSerialize(java.lang.Class<?>) チェックからの特定の例外をログに記録するかどうかを決定します。type - Jackson が(非)直列化可能性についてテストしたクラス cause - 評価する Jackson 投げ例外 (通常、JsonMappingException )public ObjectSE read(TypeSE type, @Nullable ClassSE<?> contextClass, HttpInputMessage inputMessage) throws IOExceptionSE, HttpMessageNotReadableException
GenericHttpMessageConvertertype - 返される(潜在的に汎用の)型のオブジェクト。この型は、このインターフェースの canRead メソッドに事前に渡されている必要があります。このメソッドは true を返している必要があります。contextClass - ターゲット型のコンテキストクラス。たとえば、ターゲット型がメソッドシグネチャーに表示されるクラス (null にすることができます)inputMessage - 読み込む HTTP 入力メッセージ IOExceptionSE - I/O エラーの場合 HttpMessageNotReadableException - 変換エラーの場合 protected ObjectSE readInternal(ClassSE<?> clazz, HttpInputMessage inputMessage) throws IOExceptionSE, HttpMessageNotReadableException
AbstractHttpMessageConverterAbstractHttpMessageConverter.read(java.lang.Class<? extends T>, org.springframework.http.HttpInputMessage) から呼び出されます。AbstractHttpMessageConverter<ObjectSE> の readInternal clazz - 返すオブジェクトの型 inputMessage - 読み込む HTTP 入力メッセージ IOExceptionSE - I/O エラーの場合 HttpMessageNotReadableException - 変換エラーの場合 protected CharsetSE getCharset(@Nullable MediaType contentType)
デフォルトでは、これは入力 MediaType からの文字セット、または UTF-8 にフォールバックします。サブクラスでオーバーライドできます。
contentType - HTTP 入力メッセージのコンテンツ型 protected void writeInternal(ObjectSE object, @Nullable TypeSE type, HttpOutputMessage outputMessage) throws IOExceptionSE, HttpMessageNotWritableException
AbstractGenericHttpMessageConverterAbstractGenericHttpMessageConverter.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 - 変換エラーの場合 protected void writePrefix(JsonGenerator generator, ObjectSE object) throws IOExceptionSE
generator - コンテンツの書き込みに使用するジェネレーター。object - 出力メッセージに書き込むオブジェクト。IOExceptionSEprotected void writeSuffix(JsonGenerator generator, ObjectSE object) throws IOExceptionSE
generator - コンテンツの書き込みに使用するジェネレーター。object - 出力メッセージに書き込むオブジェクト。IOExceptionSEprotected JavaType getJavaType(TypeSE type, @Nullable ClassSE<?> contextClass)
JavaType を返します。type - Jackson JavaType を返す汎用型 contextClass - ターゲット型のコンテキストクラス。たとえば、ターゲット型がメソッドシグネチャーに表示されるクラス (null にすることができます)protected JsonEncoding getJsonEncoding(@Nullable MediaType contentType)
contentType - 呼び出し元によってリクエストされたメディア型 null)@Nullable protected MediaType getDefaultContentType(ObjectSE object) throws IOExceptionSE
AbstractHttpMessageConverterAbstractHttpMessageConverter.write(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage) が呼び出されたときに呼び出されます。 デフォルトでは、supportedMediaTypes プロパティの最初の要素があれば、それを返します。サブクラスでオーバーライドできます。
AbstractHttpMessageConverter<ObjectSE> の getDefaultContentType object - コンテンツ型を返す型 null IOExceptionSE@Nullable protected LongSE getContentLength(ObjectSE object, @Nullable MediaType contentType) throws IOExceptionSE
AbstractHttpMessageConverter デフォルトでは、これは null を返します。これは、コンテンツの長さが不明であることを意味します。サブクラスでオーバーライドできます。
AbstractHttpMessageConverter<ObjectSE> の getContentLength object - コンテンツの長さを返す型 null IOExceptionSE