クラス RedisStoreWritingMessageHandler

実装されているすべてのインターフェース:
org.reactivestreams.Subscriber<Message<?>>AwareBeanFactoryAwareBeanNameAwareDisposableBeanInitializingBeanApplicationContextAwareOrderedComponentSourceAwareExpressionCapableOrderableIntegrationPatternNamedComponentIntegrationManagementTrackableComponentMessageHandlerreactor.core.CoreSubscriber<Message<?>>

public class RedisStoreWritingMessageHandler extends AbstractMessageHandler
キー StringSE によって識別される Redis ストアにメッセージデータを書き込む MessageHandler の実装。RedisCollectionFactoryBean.CollectionType で識別されるコレクション型をサポートします。バッチ更新または単一アイテム入力をサポートします。「バッチ更新」とは、メッセージのペイロードがマップまたはコレクションである可能性があることを意味します。このようなペイロードを使用すると、そこからの個々のアイテムが対応する Redis ストアに追加されます。詳細については、handleMessageInternal(Message) を参照してください。代わりに、extractPayloadElements プロパティが false に設定されている場合(デフォルトは true)、そのようなペイロードを単一のアイテムとして永続化することを選択できます。
導入:
2.2
作成者:
Oleg Zhurakousky, Gary Russell, Mark Fisher, Artem Bilan, Trung Pham
  • コンストラクターの詳細

  • メソッドの詳細

    • setKey

      public void setKey(StringSE key)
      Redis ストアのキーを指定します。式が必要な場合は、このメソッドの代わりに setKeyExpression(Expression) を呼び出します(これらは相互に排他的です)。どちらの setter も呼び出されない場合、デフォルトの式は ' ヘッダーになります。RedisHeaders.KEY '。
      パラメーター:
      key - キー。
      関連事項:
    • setKeyExpressionString

      public void setKeyExpressionString(StringSE keyExpression)
      Redis ストアのキーを決定するために使用される SpEL 式を指定します。式が不要な場合は、このメソッドの代わりにリテラル値を setKey(String) メソッドに渡すことができます(これらは相互に排他的です)。どちらの setter も呼び出されない場合、デフォルトの式は ' ヘッダーになります。RedisHeaders.KEY '。
      パラメーター:
      keyExpression - キー式。
      導入:
      5.0
      関連事項:
    • setKeyExpression

      public void setKeyExpression(Expression keyExpression)
      Redis ストアのキーを決定するために使用される SpEL 式を指定します。式が不要な場合は、このメソッドの代わりにリテラル値を setKey(String) メソッドに渡すことができます(これらは相互に排他的です)。どちらの setter も呼び出されない場合、デフォルトの式は ' ヘッダーになります。RedisHeaders.KEY '。
      パラメーター:
      keyExpression - キー式。
      関連事項:
    • setCollectionType

      public void setCollectionType(RedisCollectionFactoryBean.CollectionType collectionType)
      RedisCollectionFactoryBean.CollectionType に従って、このハンドラーのコレクション型を設定します。
      パラメーター:
      collectionType - コレクションの種類。
    • setExtractPayloadElements

      public void setExtractPayloadElements(boolean extractPayloadElements)
      ペイロードが「複数値」(つまり、コレクションまたはマップ)である場合、addAll/putAll セマンティクスを使用して保存する必要があることを示すフラグを設定します。デフォルトは "true" です。"false" に設定すると、ペイロードはその型に関係なく、単一のエントリとして保存されます。ペイロードが「複数値」(つまり、コレクションまたはマップ)のインスタンスでない場合、ペイロードは常に単一のエントリとして保存されるため、この属性の値は意味がありません。
      パラメーター:
      extractPayloadElements - ペイロード要素を抽出する必要がある場合は true。
    • setMapKeyExpressionString

      public void setMapKeyExpressionString(StringSE mapKeyExpression)
      マップおよびプロパティエントリのキーとして使用される式を設定します。デフォルトは ' ヘッダーです。RedisHeaders.MAP_KEY '
      パラメーター:
      mapKeyExpression - マップキー式。
      導入:
      5.0
    • setMapKeyExpression

      public void setMapKeyExpression(Expression mapKeyExpression)
      マップおよびプロパティエントリのキーとして使用される式を設定します。デフォルトは ' ヘッダーです。RedisHeaders.MAP_KEY '
      パラメーター:
      mapKeyExpression - マップキー式。
    • setZsetIncrementExpressionString

      public void setZsetIncrementExpressionString(StringSE zsetIncrementScoreExpression)
      ZSet コレクションの場合、ZADD コマンドの INCR フラグとして使用される式を設定します。デフォルトは ' ヘッダーです。RedisHeaders.ZSET_INCREMENT_SCORE '
      パラメーター:
      zsetIncrementScoreExpression - ZADDINCR フラグ式。
      導入:
      5.0
    • setZsetIncrementExpression

      public void setZsetIncrementExpression(Expression zsetIncrementScoreExpression)
      ZSet コレクションの場合、ZADD コマンドの INCR フラグとして使用される式を設定します。デフォルトは ' ヘッダーです。RedisHeaders.ZSET_INCREMENT_SCORE '
      パラメーター:
      zsetIncrementScoreExpression - ZADDINCR フラグ式。
      導入:
      5.0
    • getComponentType

      public StringSE getComponentType()
      クラスからコピーされた説明: IntegrationObjectSupport
      サブクラスはこのメソッドを実装して、コンポーネント型情報を提供できます。
      次で指定:
      インターフェース NamedComponentgetComponentType 
      オーバーライド:
      クラス MessageHandlerSupportgetComponentType 
    • onInit

      protected void onInit()
      クラスからコピーされた説明: IntegrationObjectSupport
      サブクラスは、初期化ロジック用にこれを実装できます。
      オーバーライド:
      クラス IntegrationObjectSupportonInit 
    • handleMessageInternal

      protected void handleMessageInternal(Message<?> message)
      メッセージからペイロードを抽出し、キー(式によって決定される場合があります)によって識別されるコレクションに格納します。コレクションの型は、collectionType プロパティによって指定されます。デフォルトの CollectionType は LIST です。

      ペイロードを格納するためのルールは次のとおりです。

      LIST/SET ペイロードの型が Collection で、extractPayloadElements が "true" (デフォルト)の場合、ペイロードは addAll() メソッドを使用して追加されます。extractPayloadElements が "false" に設定されている場合、ペイロード型に関係なく、ペイロードは add() を使用して追加されます。

      ZSET LIST/SET で説明されているルールに加えて、ZSET では「スコア」情報を提供できます。ペイロードがマップでない場合は RedisHeaders.ZSET_SCORE メッセージヘッダーを使用して、または各マップ「キー」が保存される値であり、対応する各マップ「値」が割り当てられたスコアであるペイロードとしてマップを送信することにより、スコアを提供できます。それ。extractPayloadElements が "false" に設定されている場合、マップは単一のエントリとして保存されます。「スコア」を決定できない場合は、デフォルト値 (1) が使用されます。

      マップ / プロパティマップまたはプロパティベースのストアにアイテムを追加することもできます。ペイロード自体がマップまたはプロパティ型の場合、他のコレクション型について上記で説明したのと同じルールに従って、バッチまたは単一のアイテムとして保存できます。ペイロード自体をマップ / プロパティの値として保存する必要がある場合は、マップキーを mapKeyExpression (デフォルトの RedisHeaders.MAP_KEY メッセージヘッダー) で指定する必要があります。

      次で指定:
      クラス AbstractMessageHandlerhandleMessageInternal