クラス AbstractJackson2MessageConverter

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

public abstract class AbstractJackson2MessageConverter extends AbstractMessageConverter implements BeanClassLoaderAware, SmartMessageConverter
抽象的な Jackson2 メッセージコンバーター。
導入:
2.1
作成者:
Mark Pollack, James Carr, Dave Syer, Sam Nelson, Andreas Asplund, Artem Bilan, Mohammad Hewedy, Gary Russell
  • フィールドの詳細

    • DEFAULT_CHARSET

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

      protected final Log log
    • objectMapper

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

    • AbstractJackson2MessageConverter

      protected AbstractJackson2MessageConverter(com.fasterxml.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
      導入:
      2.4.3
    • setSupportedContentType

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

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

      @Nullable public 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 ClassLoaderSE getClassLoader()
    • getJavaTypeMapper

      public Jackson2JavaTypeMapper getJavaTypeMapper()
    • isTypeMapperSet

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

      public void setJavaTypeMapper(Jackson2JavaTypeMapper javaTypeMapper)
    • getTypePrecedence

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

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

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

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

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

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

      protected boolean isUseProjectionForInterfaces()
    • setUseProjectionForInterfaces

      public void setUseProjectionForInterfaces(boolean useProjectionForInterfaces)
      推論されたパラメーターの型がインターフェースの場合、Spring Data 射影を使用してオブジェクトを作成するには、true に設定します。
      パラメーター:
      useProjectionForInterfaces - 射影を使用する場合は true。
      導入:
      2.2
    • setAssumeSupportedContentType

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