クラス RedisStoreWritingMessageHandler
java.lang.ObjectSE
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.MessageHandlerSupport
org.springframework.integration.handler.AbstractMessageHandler
org.springframework.integration.redis.outbound.RedisStoreWritingMessageHandler
- 実装されているすべてのインターフェース:
org.reactivestreams.Subscriber<Message<?>>
、Aware
、BeanFactoryAware
、BeanNameAware
、DisposableBean
、InitializingBean
、ApplicationContextAware
、Ordered
、ComponentSourceAware
、ExpressionCapable
、Orderable
、IntegrationPattern
、NamedComponent
、IntegrationManagement
、TrackableComponent
、MessageHandler
、reactor.core.CoreSubscriber<Message<?>>
キー
String
SE によって識別される Redis ストアにメッセージデータを書き込む MessageHandler
の実装。RedisCollectionFactoryBean.CollectionType
で識別されるコレクション型をサポートします。バッチ更新または単一アイテム入力をサポートします。「バッチ更新」とは、メッセージのペイロードがマップまたはコレクションである可能性があることを意味します。このようなペイロードを使用すると、そこからの個々のアイテムが対応する Redis ストアに追加されます。詳細については、handleMessageInternal(Message)
を参照してください。代わりに、extractPayloadElements
プロパティが false に設定されている場合(デフォルトは true)、そのようなペイロードを単一のアイテムとして永続化することを選択できます。- 導入:
- 2.2
- 作成者:
- Oleg Zhurakousky, Gary Russell, Mark Fisher, Artem Bilan, Trung Pham
ネストされたクラスの要約
インターフェース org.springframework.integration.support.management.IntegrationManagement から継承されたネストクラス / インターフェース
IntegrationManagement.ManagementOverrides
フィールドのサマリー
クラス org.springframework.integration.context.IntegrationObjectSupport から継承されたフィールド
EXPRESSION_PARSER, logger
インターフェース org.springframework.integration.support.management.IntegrationManagement から継承されたフィールド
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
インターフェース org.springframework.core.Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
コンストラクターの概要
コンストラクターコンストラクター説明RedisStoreWritingMessageHandler
(RedisConnectionFactory connectionFactory) 提供されたRedisConnectionFactory
を使用してインスタンスを構築します。RedisStoreWritingMessageHandler
(RedisTemplate<StringSE, ?> redisTemplate) 提供されたRedisTemplate
を使用してインスタンスを構築します。メソッドのサマリー
修飾子と型メソッド説明サブクラスはこのメソッドを実装して、コンポーネント型情報を提供できます。protected void
handleMessageInternal
(Message<?> message) メッセージからペイロードを抽出し、キー(式によって決定される場合があります)によって識別されるコレクションに格納します。protected void
onInit()
サブクラスは、初期化ロジック用にこれを実装できます。void
setCollectionType
(RedisCollectionFactoryBean.CollectionType collectionType) RedisCollectionFactoryBean.CollectionType
に従って、このハンドラーのコレクション型を設定します。void
setExtractPayloadElements
(boolean extractPayloadElements) ペイロードが「複数値」(つまり、コレクションまたはマップ)である場合、addAll/putAll セマンティクスを使用して保存する必要があることを示すフラグを設定します。void
Redis ストアのキーを指定します。void
setKeyExpression
(Expression keyExpression) Redis ストアのキーを決定するために使用される SpEL 式を指定します。void
setKeyExpressionString
(StringSE keyExpression) Redis ストアのキーを決定するために使用される SpEL 式を指定します。void
setMapKeyExpression
(Expression mapKeyExpression) マップおよびプロパティエントリのキーとして使用される式を設定します。void
setMapKeyExpressionString
(StringSE mapKeyExpression) マップおよびプロパティエントリのキーとして使用される式を設定します。void
setZsetIncrementExpression
(Expression zsetIncrementScoreExpression) ZSet コレクションの場合、ZADD コマンドの INCR フラグとして使用される式を設定します。void
setZsetIncrementExpressionString
(StringSE zsetIncrementScoreExpression) ZSet コレクションの場合、ZADD コマンドの INCR フラグとして使用される式を設定します。クラス org.springframework.integration.handler.AbstractMessageHandler から継承されたメソッド
handleMessage, onComplete, onError, onNext, onSubscribe, setObservationConvention
クラス org.springframework.integration.handler.MessageHandlerSupport から継承されたメソッド
buildSendTimer, destroy, getIntegrationPatternType, getManagedName, getManagedType, getMetricsCaptor, getObservationRegistry, getOrder, getOverrides, isLoggingEnabled, isObserved, registerMetricsCaptor, registerObservationRegistry, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrack
クラス org.springframework.integration.context.IntegrationObjectSupport から継承されたメソッド
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentDescription, getComponentName, getComponentSource, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentDescription, setComponentName, setComponentSource, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSE
インターフェース reactor.core.CoreSubscriber から継承されたメソッド
currentContext
インターフェース org.springframework.integration.support.management.IntegrationManagement から継承されたメソッド
getThisAs
インターフェース org.springframework.integration.support.context.NamedComponent から継承されたメソッド
getBeanName, getComponentName
コンストラクターの詳細
RedisStoreWritingMessageHandler
提供されたRedisTemplate
を使用してインスタンスを構築します。RedisTemplate は完全に初期化する必要があります。- パラメーター:
redisTemplate
- Redis テンプレート。
RedisStoreWritingMessageHandler
指定されたRedisConnectionFactory
を使用してインスタンスを構築します。extractPayloadElements
が true の場合はStringRedisTemplate
、false の場合はキーとハッシュキーにStringRedisSerializer
を、値とハッシュ値にJdkSerializationRedisSerializer
を含むRedisTemplate
が使用されます。- パラメーター:
connectionFactory
- 接続ファクトリ。- 関連事項:
メソッドの詳細
setKey
Redis ストアのキーを指定します。式が必要な場合は、このメソッドの代わりにsetKeyExpression(Expression)
を呼び出します(これらは相互に排他的です)。どちらの setter も呼び出されない場合、デフォルトの式は ' ヘッダーになります。RedisHeaders.KEY
'。- パラメーター:
key
- キー。- 関連事項:
setKeyExpressionString
Redis ストアのキーを決定するために使用される SpEL 式を指定します。式が不要な場合は、このメソッドの代わりにリテラル値をsetKey(String)
メソッドに渡すことができます(これらは相互に排他的です)。どちらの setter も呼び出されない場合、デフォルトの式は ' ヘッダーになります。RedisHeaders.KEY
'。- パラメーター:
keyExpression
- キー式。- 導入:
- 5.0
- 関連事項:
setKeyExpression
Redis ストアのキーを決定するために使用される SpEL 式を指定します。式が不要な場合は、このメソッドの代わりにリテラル値をsetKey(String)
メソッドに渡すことができます(これらは相互に排他的です)。どちらの setter も呼び出されない場合、デフォルトの式は ' ヘッダーになります。RedisHeaders.KEY
'。- パラメーター:
keyExpression
- キー式。- 関連事項:
setCollectionType
RedisCollectionFactoryBean.CollectionType
に従って、このハンドラーのコレクション型を設定します。- パラメーター:
collectionType
- コレクションの種類。
setExtractPayloadElements
public void setExtractPayloadElements(boolean extractPayloadElements) ペイロードが「複数値」(つまり、コレクションまたはマップ)である場合、addAll/putAll セマンティクスを使用して保存する必要があることを示すフラグを設定します。デフォルトは "true" です。"false" に設定すると、ペイロードはその型に関係なく、単一のエントリとして保存されます。ペイロードが「複数値」(つまり、コレクションまたはマップ)のインスタンスでない場合、ペイロードは常に単一のエントリとして保存されるため、この属性の値は意味がありません。- パラメーター:
extractPayloadElements
- ペイロード要素を抽出する必要がある場合は true。
setMapKeyExpressionString
マップおよびプロパティエントリのキーとして使用される式を設定します。デフォルトは ' ヘッダーです。RedisHeaders.MAP_KEY
'- パラメーター:
mapKeyExpression
- マップキー式。- 導入:
- 5.0
setMapKeyExpression
マップおよびプロパティエントリのキーとして使用される式を設定します。デフォルトは ' ヘッダーです。RedisHeaders.MAP_KEY
'- パラメーター:
mapKeyExpression
- マップキー式。
setZsetIncrementExpressionString
ZSet コレクションの場合、ZADD コマンドの INCR フラグとして使用される式を設定します。デフォルトは ' ヘッダーです。RedisHeaders.ZSET_INCREMENT_SCORE
'- パラメーター:
zsetIncrementScoreExpression
- ZADDINCR フラグ式。- 導入:
- 5.0
setZsetIncrementExpression
ZSet コレクションの場合、ZADD コマンドの INCR フラグとして使用される式を設定します。デフォルトは ' ヘッダーです。RedisHeaders.ZSET_INCREMENT_SCORE
'- パラメーター:
zsetIncrementScoreExpression
- ZADDINCR フラグ式。- 導入:
- 5.0
getComponentType
クラスからコピーされた説明:IntegrationObjectSupport
サブクラスはこのメソッドを実装して、コンポーネント型情報を提供できます。- 次で指定:
- インターフェース
NamedComponent
のgetComponentType
- オーバーライド:
- クラス
MessageHandlerSupport
のgetComponentType
onInit
protected void onInit()クラスからコピーされた説明:IntegrationObjectSupport
サブクラスは、初期化ロジック用にこれを実装できます。- オーバーライド:
- クラス
IntegrationObjectSupport
のonInit
handleMessageInternal
メッセージからペイロードを抽出し、キー(式によって決定される場合があります)によって識別されるコレクションに格納します。コレクションの型は、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
メッセージヘッダー) で指定する必要があります。- 次で指定:
- クラス
AbstractMessageHandler
のhandleMessageInternal