クラス AbstractJacksonMessageConverter

java.lang.ObjectSE
org.springframework.amqp.support.converter.AbstractMessageConverter
org.springframework.amqp.support.converter.AbstractJacksonMessageConverter
実装されているすべてのインターフェース:
MessageConverterSmartMessageConverterAwareBeanClassLoaderAware
既知の直属サブクラス
JacksonJsonMessageConverterJacksonXmlMessageConverter

public abstract class AbstractJacksonMessageConverter extends AbstractMessageConverter implements BeanClassLoaderAware, SmartMessageConverter
抽象的な Jackson 3 メッセージコンバーター。
導入:
4.0
作成者:
Artem Bilan
  • フィールドの詳細

    • DEFAULT_CHARSET

      public static final CharsetSE DEFAULT_CHARSET
      StringSE と byte[] の間の変換に使用される文字セット。
    • log

      protected final org.apache.commons.logging.Log log
    • objectMapper

      protected final tools.jackson.databind.ObjectMapper objectMapper
  • コンストラクターの詳細

    • AbstractJacksonMessageConverter

      protected AbstractJacksonMessageConverter(tools.jackson.databind.ObjectMapper objectMapper, MimeType contentType, StringSE... trustedPackages)
      提供された ObjectMapper インスタンスで構築します。
      パラメーター:
      objectMapper - 使用する ObjectMapper
      contentType - サポートされているコンテンツ型。デコード時にサブ型のみがチェックされます (例: */json、*/xml)。これに文字セットパラメーターが含まれている場合、エンコード時に contentType ヘッダーは設定されず、デコード時に生のバイトが Jackson に渡され、エンコードが動的に決定されます。それ以外の場合は、contentEncoding または既定の文字セットが使用されます。
      trustedPackages - デシリアライズ用の信頼できる Java パッケージ
      関連事項:
  • メソッドの詳細

    • getSupportedContentType

      protected MimeType getSupportedContentType()
      サポートされているコンテンツ型を取得します。デコード時にサブ型のみがチェックされます (例: */json、*/xml)。これに文字セットパラメーターが含まれている場合、エンコード時に contentType ヘッダーは設定されず、デコード時に生のバイトが Jackson に渡され、エンコードが動的に決定されます。それ以外の場合は、contentEncoding またはデフォルトの文字セットが使用されます。
      戻り値:
      supportedContentType
    • setSupportedContentType

      public void setSupportedContentType(MimeType supportedContentType)
      サポートされているコンテンツ型を設定します。デコード時にサブ型のみがチェックされます (例: */json、*/xml)。これに文字セットパラメーターが含まれている場合、エンコード時に contentType ヘッダーは設定されず、デコード時に生のバイトが Jackson に渡され、エンコードが動的に決定されます。それ以外の場合は、contentEncoding またはデフォルトの文字セットが使用されます。
      パラメーター:
      supportedContentType - supportedContentType を設定します。
    • setNullAsOptionalEmpty

      public void setNullAsOptionalEmpty(boolean nullAsOptionalEmpty)
      true の場合、jackson がボディを null としてデコードすると、元のボディを返す代わりに Optional.empty() に変換されます。デフォルトは false です。
      パラメーター:
      nullAsOptionalEmpty - 空を返す場合は true。
    • getClassMapper

      public @Nullable ClassMapper getClassMapper()
    • setClassMapper

      public void setClassMapper(ClassMapper classMapper)
    • setDefaultCharset

      public void setDefaultCharset(@Nullable StringSE defaultCharset)
      テキストベースのメッセージ本文コンテンツとの間で変換するときに使用するデフォルトの文字セットを指定します。指定しない場合、文字セットは "UTF-8" になります。
      パラメーター:
      defaultCharset - デフォルトの文字セット。
    • getDefaultCharset

      public StringSE getDefaultCharset()
    • setBeanClassLoader

      public void setBeanClassLoader(ClassLoaderSE classLoader)
      次で指定:
      インターフェース BeanClassLoaderAwaresetBeanClassLoader 
    • getClassLoader

      protected @Nullable ClassLoaderSE getClassLoader()
    • getJavaTypeMapper

      public JacksonJavaTypeMapper getJavaTypeMapper()
    • isTypeMapperSet

      public boolean isTypeMapperSet()
      明示的な java 型マッパーが提供されているかどうか。
      戻り値:
      デフォルトの型マッパーが使用されている場合は false。
      関連事項:
    • setJavaTypeMapper

      public void setJavaTypeMapper(JacksonJavaTypeMapper javaTypeMapper)
    • getTypePrecedence

      public JacksonJavaTypeMapper.TypePrecedence getTypePrecedence()
      型の優先順位を返します。
      戻り値:
      優先順位。
      関連事項:
    • setTypePrecedence

      public void setTypePrecedence(JacksonJavaTypeMapper.TypePrecedence typePrecedence)
      メッセージプロパティの型情報を評価する優先順位を設定します。メソッドレベルで @RabbitListener を使用する場合、フレームワークはメソッドシグネチャーからペイロード変換のターゲット型を決定しようとします。その場合、この型は inferredArgumentType メッセージプロパティで提供されます。

      デフォルトでは、型が具体的 (抽象的でもなく、インターフェースでもない) の場合、これは、__TypeId__ で提供される型情報および送信者によって提供される関連ヘッダーの前に使用されます。

      __TypeId__ および関連するヘッダーの使用を強制する場合 (実際の型がメソッド引数型のサブクラスである場合など)、優先順位を JacksonJavaTypeMapper.TypePrecedence.TYPE_ID に設定します。

      パラメーター:
      typePrecedence - 優先順位。
      関連事項:
    • setAlwaysConvertToInferredType

      public void setAlwaysConvertToInferredType(boolean alwaysAttemptConversion)
      false (デフォルト) の場合、型 (またはコンテナー型の内容) が抽象の場合、型 ID ヘッダーにフォールバックします。ObjectMapper でカスタムデシリアライザーが構成されているため、常に変換を試行する必要がある場合は true に設定します。試行が失敗した場合は、ヘッダーにフォールバックします。
      パラメーター:
      alwaysAttemptConversion - 試みに真。
    • setAssumeSupportedContentType

      public void setAssumeSupportedContentType(boolean assumeSupportedContentType)
      デフォルトでは、contentType プロパティが存在しない場合、またはデフォルト('application/octet-stream')に設定されている場合は、サポートされているコンテンツ型が想定されます。この条件が存在する場合、変換されていない 'byte[]' を返す以前の動作に戻すには、'false' に設定します。
      パラメーター:
      assumeSupportedContentType - コンテンツ型がサポートされていると想定しない場合は、false に設定します。
    • fromMessage

      public ObjectSE fromMessage(Message message) throws MessageConversionException
      インターフェースからコピーされた説明: MessageConverter
      Message から Java オブジェクトに変換します。
      次で指定:
      インターフェース MessageConverterfromMessage 
      パラメーター:
      message - 変換するメッセージ
      戻り値:
      変換された Java オブジェクト
      例外:
      MessageConversionException - 変換に失敗した場合
    • fromMessage

      public ObjectSE fromMessage(Message message, @Nullable ObjectSE conversionHint) throws MessageConversionException
      追加の変換コンテキストを引数として取る MessageConverter.fromMessage(Message) のバリアント。
      次で指定:
      インターフェース SmartMessageConverterfromMessage 
      パラメーター:
      message - 入力メッセージ。
      conversionHint - conversionHint は ParameterizedTypeReference である必要があります。
      戻り値:
      変換の結果、またはコンバーターが変換を実行できない場合は null
      例外:
      MessageConversionException - 変換に失敗した場合。
      関連事項:
    • doFromMessage

      protected ObjectSE doFromMessage(Message message, @Nullable ObjectSE conversionHint, MessageProperties properties, @Nullable StringSE encoding)
    • convertContent

      protected ObjectSE convertContent(Message message, @Nullable ObjectSE conversionHint, MessageProperties properties, @Nullable StringSE encoding) throws IOExceptionSE
      例外:
      IOExceptionSE
    • createMessage

      protected Message createMessage(ObjectSE objectToConvert, MessageProperties messageProperties) throws MessageConversionException
      クラスからコピーされた説明: AbstractMessageConverter
      指定されたペイロードオブジェクトとメッセージプロパティからメッセージを作成します。メッセージ ID は、後で必要に応じてプロパティに追加されます。
      次で指定:
      クラス AbstractMessageConvertercreateMessage 
      パラメーター:
      objectToConvert - ペイロード。
      messageProperties - メッセージのプロパティ (ヘッダー)。
      戻り値:
      メッセージ。
      例外:
      MessageConversionException
    • createMessage

      protected Message createMessage(ObjectSE objectToConvert, MessageProperties messageProperties, @Nullable TypeSE genericType) throws MessageConversionException
      クラスからコピーされた説明: AbstractMessageConverter
      指定されたペイロードオブジェクトとメッセージプロパティからメッセージを作成します。メッセージ ID は、後で必要に応じてプロパティに追加されます。
      オーバーライド:
      クラス AbstractMessageConvertercreateMessage 
      パラメーター:
      objectToConvert - ペイロード
      messageProperties - メッセージのプロパティ (headers)
      genericType - 変換元の型 - 型 ヘッダーの入力に使用されます。
      戻り値:
      メッセージ
      例外:
      MessageConversionException