クラス RecipientListRouter
java.lang.ObjectSE
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.MessageHandlerSupport
org.springframework.integration.handler.AbstractMessageHandler
org.springframework.integration.router.AbstractMessageRouter
org.springframework.integration.router.RecipientListRouter
- 実装済みのインターフェース一覧:
org.reactivestreams.Subscriber<Message<?>>, Aware, BeanFactoryAware, BeanNameAware, DisposableBean, InitializingBean, ApplicationContextAware, Ordered, ComponentSourceAware, ExpressionCapable, Orderable, IntegrationPattern, MessageRouter, RecipientListRouterManagement, NamedComponent, IntegrationManagement, TrackableComponent, MessageHandler, reactor.core.CoreSubscriber<Message<?>>
public class RecipientListRouter
extends AbstractMessageRouter
implements RecipientListRouterManagement
<recipient-list-router id="simpleRouter" input-channel="routingChannelA">
<recipient channel="channel1"/>
<recipient channel="channel2"/>
</recipient-list-router>
受信者チャネルのリストにメッセージを送信するメッセージルーター。受信者は、setChannels(List) メソッドを介して MessageChannel インスタンスの静的リストとして提供できます。動的な動作の場合は、setRecipients(List) メソッドを介して値を提供できます。
動的受信者リストのより高度なプログラムによる制御については、代わりに @Router アノテーションを使用するか、AbstractMappingMessageRouter を継承することを検討してください。
標準の <router... /> とは異なり、このハンドラーは受信者として構成されているすべてのチャネルに送信しようとします。エンドポイントに対するパブリッシュサブスクライブチャネルとは、チャネルに対するものです。
このクラスの使用は、メッセージを複数のハンドラーに送信するのではなく、複数のチャネルで送信することが不可欠な場合にのみ意味があります。後者がパブリッシュサブスクライブチャネルを使用するオプションである場合は、より柔軟なソリューションです。
- 作成者:
- Mark Fisher, Oleg Zhurakousky, Artem Bilan, Liujiong, Gary Russell, Glenn Renfro
ネストされたクラスの概要
ネストされたクラスインターフェース IntegrationManagement から継承されたネストクラス / インターフェース
IntegrationManagement.ManagementOverridesフィールド概要
クラス IntegrationObjectSupport から継承されたフィールド
EXPRESSION_PARSER, loggerインターフェース IntegrationManagement から継承されたフィールド
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAMEインターフェース Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCEコンストラクター概要
コンストラクター方法の概要
修飾子と型メソッド説明voidaddRecipient(StringSE channelName) channelName で受信者を追加します。voidaddRecipient(StringSE channelName, StringSE selectorExpression) channelName と式を使用して受信者を追加します。voidaddRecipient(StringSE channelName, @Nullable MessageSelector selector) voidaddRecipient(MessageChannel channel) voidaddRecipient(MessageChannel channel, @Nullable MessageSelector selector) protected CollectionSE<MessageChannel> determineTargetChannels(Message<?> message) サブクラスはこのメソッドを実装して、指定されたメッセージのルーティング先となる 0 個以上の MessageChannels のコレクションを返す必要があります。このコンポーネントが実装するパターン型を返します。protected voidonInit()サブクラスは、初期化ロジック用にこれを実装できます。intremoveRecipient(StringSE channelName) channelName に一致するすべての受信者を削除します。intremoveRecipient(StringSE channelName, StringSE selectorExpression) channelName と式に一致するすべての受信者を削除します。voidreplaceRecipients(PropertiesSE recipientMappings) 受信者を交換してください。voidsetChannels(ListSE<MessageChannel> channels) このルーターのチャネルを設定します。voidsetRecipientMappings(MapSE<StringSE, StringSE> recipientMappings) このルーターの受信者を設定します。voidsetRecipients(ListSE<RecipientListRouter.Recipient> recipients) このルーターの受信者を設定します。クラス AbstractMessageRouter から継承されたメソッド
getDefaultOutputChannel, getMessagingTemplate, getRequiredConversionService, handleMessageInternal, setApplySequence, setDefaultOutputChannel, setDefaultOutputChannelName, setIgnoreSendFailures, setSendTimeoutクラス AbstractMessageHandler から継承されたメソッド
handleMessage, onComplete, onError, onNext, onSubscribe, setObservationConventionクラス MessageHandlerSupport から継承されたメソッド
buildSendTimer, destroy, getManagedName, getManagedType, getMetricsCaptor, getObservationRegistry, getOrder, getOverrides, isLoggingEnabled, isObserved, registerMetricsCaptor, registerObservationRegistry, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrackクラス 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クラス ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSEインターフェース reactor.core.CoreSubscriber から継承されたメソッド
currentContextインターフェース IntegrationManagement から継承されたメソッド
getThisAsインターフェース NamedComponent から継承されたメソッド
getBeanName, getComponentName
コンストラクターの詳細
RecipientListRouter
public RecipientListRouter()
方法の詳細
setChannels
このルーターのチャネルを設定します。このメソッドまたはsetRecipients(List)のいずれかを呼び出しますが、両方を呼び出すことはできません。MessageSelectors を検討する必要がある場合は、setRecipients(List)を使用してください。- パラメーター:
channels- チャネル。
setRecipients
このルーターの受信者を設定します。- パラメーター:
recipients- 受信者。
setRecipientMappings
このルーターの受信者を設定します。- 次で指定:
- インターフェース
RecipientListRouterManagement内のsetRecipientMappings - パラメーター:
recipientMappings- マップには channelName と式が含まれています
addRecipient
インターフェースからコピーされた説明:RecipientListRouterManagementchannelName と式を使用して受信者を追加します。式はSimpleEvaluationContext.forReadOnlyDataBinding()機能にのみ従います。それ以外の場合は、実行をより細かく制御できる非管理型addRecipient(String, MessageSelector)API を使用します。- 次で指定:
- インターフェース
RecipientListRouterManagement内のaddRecipient - パラメーター:
channelName- チャンネル名。selectorExpression- 受信メッセージをフィルタリングする式。
addRecipient
インターフェースからコピーされた説明:RecipientListRouterManagementchannelName で受信者を追加します。- 次で指定:
- インターフェース
RecipientListRouterManagement内のaddRecipient - パラメーター:
channelName- チャンネル名。
addRecipient
addRecipient
addRecipient
removeRecipient
インターフェースからコピーされた説明:RecipientListRouterManagementchannelName に一致するすべての受信者を削除します。- 次で指定:
- インターフェース
RecipientListRouterManagement内のremoveRecipient - パラメーター:
channelName- チャンネル名。- 戻り値:
- 削除された受信者の数。
removeRecipient
インターフェースからコピーされた説明:RecipientListRouterManagementchannelName と式に一致するすべての受信者を削除します。- 次で指定:
- インターフェース
RecipientListRouterManagement内のremoveRecipient - パラメーター:
channelName- チャンネル名。selectorExpression- 受信メッセージをフィルタリングする式- 戻り値:
- 削除された受信者の数。
replaceRecipients
インターフェースからコピーされた説明:RecipientListRouterManagement受信者を置き換えます。式はSimpleEvaluationContext.forReadOnlyDataBinding()機能にのみ従います。それ以外の場合は、実行をより細かく制御できる非管理型addRecipient(String, MessageSelector)API を使用します。- 次で指定:
- インターフェース
RecipientListRouterManagement内のreplaceRecipients - パラメーター:
recipientMappings- channelName と表現を含みます。
getRecipients
- 次で指定:
- インターフェース
RecipientListRouterManagement内のgetRecipients - 戻り値:
- 受信者の変更不可能なコレクション。
getComponentType
- 次で指定:
- インターフェース
NamedComponent内のgetComponentType - オーバーライド:
- クラス
AbstractMessageRouterのgetComponentType
getIntegrationPatternType
インターフェースからコピーされた説明:IntegrationPatternこのコンポーネントが実装するパターン型を返します。- 次で指定:
- インターフェース
IntegrationPattern内のgetIntegrationPatternType - オーバーライド:
- クラス
AbstractMessageRouterのgetIntegrationPatternType - 戻り値:
- このコンポーネントが実装する
IntegrationPatternType
determineTargetChannels
クラスからコピーされた説明:AbstractMessageRouterサブクラスはこのメソッドを実装して、指定されたメッセージのルーティング先となる 0 個以上の MessageChannels のコレクションを返す必要があります。- 次で指定:
- クラス
AbstractMessageRouterのdetermineTargetChannels - パラメーター:
message- メッセージ。- 戻り値:
- メッセージチャネルのコレクション。
onInit
protected void onInit()クラスからコピーされた説明:IntegrationObjectSupportサブクラスは、初期化ロジック用にこれを実装できます。- オーバーライド:
- クラス
AbstractMessageRouterのonInit