クラス EmbeddedJsonHeadersMessageMapper

java.lang.ObjectSE
org.springframework.integration.support.json.EmbeddedJsonHeadersMessageMapper
実装されたすべてのインターフェース:
BytesMessageMapperInboundMessageMapper<byte[]>OutboundMessageMapper<byte[]>

public class EmbeddedJsonHeadersMessageMapper extends ObjectSE implements BytesMessageMapper
送信メッセージの場合、メッセージ対応の Jackson オブジェクトマッパーを使用してメッセージを JSON としてレンダリングします。byte[] ペイロードを持つメッセージの場合、JSON としてレンダリングされると、Jackson はバイトに対して Base64 変換を実行します。ペイロードが byte[] で、rawBytes プロパティが true (デフォルト) の場合、結果は [headersLen][headers][payloadLen][payload] の形式になり、ヘッダーは JSON でレンダリングされ、ペイロードは変更されません。それ以外の場合、メッセージは Jackson オブジェクトマッパーで完全に直列化および逆直列化されます。

デフォルトでは、すべてのヘッダーが含まれています。ヘッダーのサブセットを指定する単純なパターンを提供できます。

予想される形式が検出されず、変換中にエラーも発生しない場合は、メッセージのペイロードは元の byte[] になります。

IMPORTANT

デフォルトのオブジェクトマッパーは、特定のパッケージのクラスのみをデシリアライズします。

        "java.util",
        "java.lang",
        "org.springframework.messaging.support",
        "org.springframework.integration.support",
        "org.springframework.integration.message",
        "org.springframework.integration.store",
        "org.springframework.integration.history",
        "org.springframework.integration.handler"
 

さらにパッケージを追加するには、JacksonJsonUtils.messagingAwareMapper(String...) を使用してオブジェクトマッパーを作成します。

このような構成されたオブジェクトマッパーの提供を可能にするコンストラクターが提供されます。

導入:
5.0
作成者:
Gary Russell, Artem Bilan
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected final Log
  • コンストラクターの概要

    コンストラクター
    コンストラクター
    説明
    デフォルトの JSON オブジェクトマッパーを使用して、すべてのヘッダーを埋め込むインスタンスを作成します。
    EmbeddedJsonHeadersMessageMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
    提供された JSON オブジェクトマッパーを使用して、すべてのヘッダーを埋め込むインスタンスを作成します。
    EmbeddedJsonHeadersMessageMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper, StringSE... headerPatterns)
    提供された JSON オブジェクトマッパーを使用して、提供されたパターンに一致するヘッダーを埋め込むインスタンスを作成します。
    デフォルトの JSON オブジェクトマッパーを使用して、指定されたパターンに一致するヘッダーを埋め込むインスタンスを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    byte[]
    fromMessage(Message<?> message)
    void
    setCaseSensitive(boolean caseSensitive)
    ヘッダー名パターンの一致で大文字と小文字を区別するには、true に設定します。
    void
    setRawBytes(boolean rawBytes)
    byte[] ペイロードを持つメッセージの場合、JSON としてレンダリングされると、Jackson はバイトに対して Base64 変換を実行します。
    toMessage(byte[] bytes, MapSE<StringSE,ObjectSE> headers)
    提供されたオブジェクトを Message に変換し、必要に応じて提供されたヘッダーを提供します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE

    インターフェース org.springframework.integration.mapping.BytesMessageMapper から継承されたメソッド

    toMessage
  • フィールドの詳細

    • logger

      protected final Log logger
  • コンストラクターの詳細

    • EmbeddedJsonHeadersMessageMapper

      public EmbeddedJsonHeadersMessageMapper()
      デフォルトの JSON オブジェクトマッパーを使用して、すべてのヘッダーを埋め込むインスタンスを作成します。
    • EmbeddedJsonHeadersMessageMapper

      public EmbeddedJsonHeadersMessageMapper(StringSE... headerPatterns)
      デフォルトの JSON オブジェクトマッパーを使用して、指定されたパターンに一致するヘッダーを埋め込むインスタンスを作成します。
      パラメーター:
      headerPatterns - パターン。
      関連事項:
    • EmbeddedJsonHeadersMessageMapper

      public EmbeddedJsonHeadersMessageMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
      提供された JSON オブジェクトマッパーを使用して、すべてのヘッダーを埋め込むインスタンスを作成します。
      パラメーター:
      objectMapper - オブジェクトマッパー。
    • EmbeddedJsonHeadersMessageMapper

      public EmbeddedJsonHeadersMessageMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper, StringSE... headerPatterns)
      提供された JSON オブジェクトマッパーを使用して、提供されたパターンに一致するヘッダーを埋め込むインスタンスを作成します。
      パラメーター:
      objectMapper - オブジェクトマッパー。
      headerPatterns - パターン。
  • メソッドの詳細

    • setRawBytes

      public void setRawBytes(boolean rawBytes)
      byte[] ペイロードを持つメッセージの場合、JSON としてレンダリングされると、Jackson はバイトに対して Base64 変換を実行します。このプロパティが true (デフォルト) の場合、結果は [headersLen][headers][payloadLen][payload] の形式になり、ヘッダーは JSON でレンダリングされ、ペイロードは変更されません。バイトを base64 としてレンダリングするには、false に設定します。
      パラメーター:
      rawBytes - base64 としてエンコードする場合は false。
    • setCaseSensitive

      public void setCaseSensitive(boolean caseSensitive)
      ヘッダー名パターンの大文字と小文字を区別して一致させるには、true に設定します。デフォルトは false です。
      パラメーター:
      caseSensitive - 大文字と小文字を区別する場合は true です。
    • getHeaderPatterns

      public CollectionSE<StringSE> getHeaderPatterns()
    • fromMessage

      public byte[] fromMessage(Message<?> message)
      次で指定:
      インターフェース OutboundMessageMapper<byte[]>fromMessage 
    • toMessage

      public Message<?> toMessage(byte[] bytes, @Nullable MapSE<StringSE,ObjectSE> headers)
      インターフェースからコピーされた説明: InboundMessageMapper
      提供されたオブジェクトを Message に変換し、必要に応じて提供されたヘッダーを提供します。
      次で指定:
      インターフェース BytesMessageMappertoMessage 
      次で指定:
      インターフェース InboundMessageMapper<byte[]>toMessage 
      パラメーター:
      bytes - メッセージペイロードまたはその他の変換ロジックのオブジェクト
      headers - メッセージを作成するための追加ヘッダー。null にすることができます
      戻り値:
      マッピングの結果としてのメッセージ