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... /> とは異なり、このハンドラーは受信者として構成されているすべてのチャネルに送信しようとします。エンドポイントに対するパブリッシュサブスクライブチャネルとは、チャネルに対するものです。
このクラスの使用は、メッセージを複数のハンドラーに送信するのではなく、複数のチャネルで送信することが不可欠な場合にのみ意味があります。後者がパブリッシュサブスクライブチャネルを使用するオプションである場合は、より柔軟なソリューションです。
修飾子と型 | クラスと説明 |
---|---|
static class | RecipientListRouter.Recipient |
IntegrationManagement.ManagementOverrides
EXPRESSION_PARSER, logger
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
コンストラクターと説明 |
---|
RecipientListRouter() |
修飾子と型 | メソッドと説明 |
---|---|
void | addRecipient(MessageChannel channel) |
void | addRecipient(MessageChannel channel, MessageSelector selector) |
void | addRecipient(StringSE channelName) channelName で受信者を追加します。 |
void | addRecipient(StringSE channelName, MessageSelector selector) |
void | addRecipient(StringSE channelName, StringSE selectorExpression) channelName と式を使用して受信者を追加します。 |
protected CollectionSE<MessageChannel> | determineTargetChannels(Message<?> message) サブクラスはこのメソッドを実装して、指定されたメッセージのルーティング先となる 0 個以上の MessageChannels のコレクションを返す必要があります。 |
StringSE | getComponentType() サブクラスはこのメソッドを実装して、コンポーネント型情報を提供できます。 |
IntegrationPatternType | getIntegrationPatternType() このコンポーネントが実装するパターン型を返します。 |
CollectionSE<RecipientListRouter.Recipient> | getRecipients() |
protected void | onInit() サブクラスは、初期化ロジック用にこれを実装できます。 |
int | removeRecipient(StringSE channelName) channelName に一致するすべての受信者を削除します。 |
int | removeRecipient(StringSE channelName, StringSE selectorExpression) channelName と式に一致するすべての受信者を削除します。 |
void | replaceRecipients(PropertiesSE recipientMappings) 受信者を交換してください。 |
void | setChannels(ListSE<MessageChannel> channels) このルーターのチャネルを設定します。 |
void | setRecipientMappings(MapSE<StringSE, StringSE> recipientMappings) このルーターの受信者を設定します。 |
void | setRecipients(ListSE<RecipientListRouter.Recipient> recipients) このルーターの受信者を設定します。 |
getDefaultOutputChannel, getMessagingTemplate, getRequiredConversionService, handleMessageInternal, setApplySequence, setDefaultOutputChannel, setDefaultOutputChannelName, setIgnoreSendFailures, setSendTimeout
handleMessage, onComplete, onError, onNext, onSubscribe
buildSendTimer, destroy, getManagedName, getManagedType, getMetricsCaptor, getOrder, getOverrides, isLoggingEnabled, registerMetricsCaptor, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrack
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSE
getThisAs
getBeanName, getComponentName
public void setChannels(ListSE<MessageChannel> channels)
setRecipients(List)
のいずれかを呼び出しますが、両方を呼び出すことはできません。MessageSelectors を検討する必要がある場合は、setRecipients(List)
を使用してください。channels
- チャネル。public void setRecipients(ListSE<RecipientListRouter.Recipient> recipients)
recipients
- 受信者。@ManagedAttribute public void setRecipientMappings(MapSE<StringSE,StringSE> recipientMappings)
RecipientListRouterManagement
の setRecipientMappings
recipientMappings
- マップには channelName と式が含まれています @ManagedOperation public void addRecipient(StringSE channelName, StringSE selectorExpression)
RecipientListRouterManagement
RecipientListRouterManagement
の addRecipient
channelName
- チャンネル名。selectorExpression
- 受信メッセージをフィルタリングする式。@ManagedOperation public void addRecipient(StringSE channelName)
RecipientListRouterManagement
RecipientListRouterManagement
の addRecipient
channelName
- チャンネル名。public void addRecipient(StringSE channelName, MessageSelector selector)
public void addRecipient(MessageChannel channel)
public void addRecipient(MessageChannel channel, MessageSelector selector)
@ManagedOperation public int removeRecipient(StringSE channelName)
RecipientListRouterManagement
RecipientListRouterManagement
の removeRecipient
channelName
- チャンネル名。@ManagedOperation public int removeRecipient(StringSE channelName, StringSE selectorExpression)
RecipientListRouterManagement
RecipientListRouterManagement
の removeRecipient
channelName
- チャンネル名。selectorExpression
- 受信メッセージをフィルタリングする式 @ManagedOperation public void replaceRecipients(PropertiesSE recipientMappings)
RecipientListRouterManagement
RecipientListRouterManagement
の replaceRecipients
recipientMappings
- channelName と表現を含みます。@ManagedAttribute public CollectionSE<RecipientListRouter.Recipient> getRecipients()
RecipientListRouterManagement
の getRecipients
public StringSE getComponentType()
IntegrationObjectSupport
NamedComponent
の getComponentType
AbstractMessageRouter
の getComponentType
public IntegrationPatternType getIntegrationPatternType()
IntegrationPattern
IntegrationPattern
の getIntegrationPatternType
AbstractMessageRouter
の getIntegrationPatternType
IntegrationPatternType
protected CollectionSE<MessageChannel> determineTargetChannels(Message<?> message)
AbstractMessageRouter
AbstractMessageRouter
の determineTargetChannels
message
- メッセージ。protected void onInit()
IntegrationObjectSupport
AbstractMessageRouter
の onInit