クラス AbstractMappingMessageRouter

実装されたすべてのインターフェース:
org.reactivestreams.Subscriber<Message<?>>AwareBeanFactoryAwareBeanNameAwareDisposableBeanInitializingBeanApplicationContextAwareOrderedExpressionCapableOrderableIntegrationPatternMessageRouterNamedComponentIntegrationManagementMappingMessageRouterManagementTrackableComponentMessageHandlerreactor.core.CoreSubscriber<Message<?>>
既知の直属サブクラス
ErrorMessageExceptionTypeRouterExpressionEvaluatingRouterHeaderValueRouterMethodInvokingRouterPayloadTypeRouterXPathRouter

public abstract class AbstractMappingMessageRouter extends AbstractMessageRouter implements MappingMessageRouterManagement
任意の文字列値からメッセージチャネル名へのマッピングをサポートするすべてのメッセージルーターの基本クラス。
導入:
2.1
作成者:
Mark Fisher, Oleg Zhurakousky, Gunnar Hillert, Gary Russell, Artem Bilan, Trung Pham
  • コンストラクターの詳細

    • AbstractMappingMessageRouter

      public AbstractMappingMessageRouter()
  • メソッドの詳細

    • setChannelMappings

      @ManagedAttribute public void setChannelMappings(MapSE<StringSE,StringSE> channelMappings)
      チャネルキーからチャネル名へのマッピングを提供します。チャネル名は DestinationResolver によって解決されます。
      次で指定:
      インターフェース MappingMessageRouterManagementsetChannelMappings 
      パラメーター:
      channelMappings - チャネルマッピング。
    • setPrefix

      public void setPrefix(StringSE prefix)
      解決前に各チャネル名に追加するプレフィックスを指定します。
      パラメーター:
      prefix - 接頭辞。
    • setSuffix

      public void setSuffix(StringSE suffix)
      解決前に各チャネル名に追加するサフィックスを指定します。
      パラメーター:
      suffix - サフィックス。
    • setResolutionRequired

      public void setResolutionRequired(boolean resolutionRequired)
      ChannelResolver 戦略に委譲するときに、このルーターがチャネル名を実際の MessageChannel インスタンスに解決するための失敗を無視するかどうかを指定します。
      パラメーター:
      resolutionRequired - 解決が必要な場合は true。
    • setChannelKeyFallback

      public void setChannelKeyFallback(boolean channelKeyFallback)
      true (デフォルト) の場合、解決されたチャネルキーがチャネルマップに存在しない場合、キー自体がチャネル名として使用され、チャネルへの解決が試行されます。この機能を無効にするには、false に設定します。これは、スタックオーバーフローの原因となるルーターのアップストリームなど、予期しないチャネルにメッセージがルーティングされる可能性があるメッセージを悪意のあるアクターが生成するのを防ぐのに役立ちます。
      パラメーター:
      channelKeyFallback - フォールバックを無効にする場合は false。
      導入:
      5.2
    • setDefaultOutputChannel

      public void setDefaultOutputChannel(MessageChannel defaultOutputChannel)
      チャネル解決がチャネルを返さない場合にメッセージが送信されるデフォルトチャネルを設定します。また、channelKeyFallback を false に設定して、キーからチャネルを解決しようとする試みを回避しますが、代わりにメッセージをこのチャネルに直接送信します。channelKeyFallback が明示的に true に設定されている場合、ロジックは resolutionRequired オプション (デフォルトでは true ) に依存するため、このデフォルトの出力チャネルへのフォールバックは発生しない可能性があります。デフォルトの出力チャネルが存在し、resolutionRequired および channelKeyFallback が true に設定されている構成は、あいまいさにつながるため拒否されます。
      オーバーライド:
      クラス AbstractMessageRoutersetDefaultOutputChannel 
      パラメーター:
      defaultOutputChannel - デフォルトの出力チャネル。
      導入:
      6.0
      関連事項:
    • setDefaultOutputChannelName

      public void setDefaultOutputChannelName(StringSE defaultOutputChannelName)
      チャネル解決がチャネルを返さない場合にメッセージが送信されるデフォルトチャネルを設定します。また、channelKeyFallback を false に設定して、キーからチャネルを解決しようとする試みを回避しますが、代わりにメッセージをこのチャネルに直接送信します。channelKeyFallback が明示的に true に設定されている場合、ロジックは resolutionRequired オプション (デフォルトでは true ) に依存するため、このデフォルトの出力チャネルへのフォールバックは発生しない可能性があります。デフォルトの出力チャネルが存在し、resolutionRequired および channelKeyFallback が true に設定されている構成は、あいまいさにつながるため拒否されます。
      オーバーライド:
      クラス AbstractMessageRoutersetDefaultOutputChannelName 
      パラメーター:
      defaultOutputChannelName - デフォルト出力のチャネル Bean の名前。
      導入:
      6.0
      関連事項:
    • setDynamicChannelLimit

      public void setDynamicChannelLimit(int dynamicChannelLimit)
      保持する動的チャネルの数に制限を設定します(レポート用)。制限を超えると、最も古いチャネルが破棄されます。

      注: これはルーティングには影響せず、動的に解決されたチャネルがにルーティングされたレポートのみに影響します。デフォルト 100.

      パラメーター:
      dynamicChannelLimit - 限界。
      関連事項:
    • getChannelMappings

      @ManagedAttribute public MapSE<StringSE,StringSE> getChannelMappings()
      チャネルマッピングの変更不可能なバージョンを返します。これは、サブクラスのみによる使用を目的としています。
      次で指定:
      インターフェース MappingMessageRouterManagementgetChannelMappings 
      戻り値:
      チャネルマッピング。
    • setChannelMapping

      @ManagedOperation public void setChannelMapping(StringSE key, StringSE channelName)
      提供されたキーからチャネル名へのチャネルマッピングを追加します。
      次で指定:
      インターフェース MappingMessageRouterManagementsetChannelMapping 
      パラメーター:
      key - キー。
      channelName - チャンネル名。
    • removeChannelMapping

      @ManagedOperation public void removeChannelMapping(StringSE key)
      存在する場合、指定されたキーのチャネルマッピングを削除します。
      次で指定:
      インターフェース MappingMessageRouterManagementremoveChannelMapping 
      パラメーター:
      key - キー。
    • getDynamicChannelNames

      @ManagedAttribute public CollectionSE<StringSE> getDynamicChannelNames()
      インターフェースからコピーされた説明: MappingMessageRouterManagement
      チャネルが明示的にマッピングされていないメッセージをルーティングしたチャネル名のコレクションを提供します。

      実装は、最新のチャネル名のみを返すことを選択できます。

      次で指定:
      インターフェース MappingMessageRouterManagementgetDynamicChannelNames 
      戻り値:
      チャネルが明示的にマッピングされていないメッセージをルーティングしたチャネル名のコレクション。
    • onInit

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

      protected CollectionSE<MessageChannel> determineTargetChannels(Message<?> message)
      クラスからコピーされた説明: AbstractMessageRouter
      サブクラスはこのメソッドを実装して、指定されたメッセージのルーティング先となる 0 個以上の MessageChannels のコレクションを返す必要があります。
      次で指定:
      クラス AbstractMessageRouterdetermineTargetChannels 
      パラメーター:
      message - メッセージ。
      戻り値:
      メッセージチャネルのコレクション。
    • getChannelKeys

      protected abstract ListSE<ObjectSE> getChannelKeys(Message<?> message)
      サブクラスは、チャネルキーを返すためにこのメソッドを実装する必要があります。「キー」はこのルーターの "channelMappings" に存在する場合があります。または、チャネルの名前またはメッセージチャネルインスタンス自体である場合もあります。
      パラメーター:
      message - メッセージ。
      戻り値:
      チャンネルキー。
    • replaceChannelMappings

      @ManagedOperation public void replaceChannelMappings(PropertiesSE channelMappings)
      コントロールバスメッセージ内のマッピングのリストの変換を可能にする簡易メソッド。

      これは、制御バスを介して呼び出されることを意図しています。文字列ではないキーと値は無視されます。

      マッピングは改行で区切る必要があります。例:

      "@'myRouter.handler'.replaceChannelMappings('foo=qux \n baz=bar')".

      次で指定:
      インターフェース MappingMessageRouterManagementreplaceChannelMappings 
      パラメーター:
      channelMappings - チャネルマッピング。
      導入:
      4.0