クラス ContentEnricher

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

public class ContentEnricher extends AbstractReplyProducingMessageHandler implements ManageableLifecycle
Content Enricher は、静的な値でメッセージのペイロードを増やすか、リクエストチャネルを介して下流のメッセージフローをオプションで呼び出し、応答メッセージの値を元のペイロードに適用することにより、メッセージのペイロードを増やすことができるメッセージ Transformer です。
導入:
2.1
作成者:
Mark Fisher, Gunnar Hillert, Gary Russell, Artem Bilan, Liujiong, Kris Jacyna
  • コンストラクターの詳細

    • ContentEnricher

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

    • setNullResultPropertyExpressions

      public void setNullResultPropertyExpressions(MapSE<StringSE,Expression> nullResultPropertyExpressions)
    • setNullResultHeaderExpressions

      public void setNullResultHeaderExpressions(MapSE<StringSE,HeaderValueMessageProcessor<?>> nullResultHeaderExpressions)
    • setPropertyExpressions

      public void setPropertyExpressions(MapSE<StringSE,Expression> propertyExpressions)
      ターゲットペイロードを強化するときに評価する式のマップを提供します。キーは単にプロパティ名である必要があり、値はルートオブジェクトとしての応答メッセージに対して評価される式である必要があります。
      パラメーター:
      propertyExpressions - プロパティ式。
    • setHeaderExpressions

      public void setHeaderExpressions(MapSE<StringSE,HeaderValueMessageProcessor<?>> headerExpressions)
      ターゲット MessageHeaders を強化するときに評価する HeaderValueMessageProcessor のマップを提供します。キーは単にヘッダー名である必要があり、値はルートオブジェクトとしての応答メッセージに対して評価される式である必要があります。
      パラメーター:
      headerExpressions - ヘッダー式。
    • setRequestChannel

      public void setRequestChannel(MessageChannel requestChannel)
      コンテンツエンリッチャーリクエストチャネルを設定します。指定した場合、内部ゲートウェイが初期化されます。リクエストチャネルの設定はオプションです。リクエストチャネルを設定しないことは、メッセージペイロードが静的な値のみで強化される状況で役立ちます。
      パラメーター:
      requestChannel - リクエストチャネル。
    • setRequestChannelName

      public void setRequestChannelName(StringSE requestChannelName)
    • setReplyChannel

      public void setReplyChannel(MessageChannel replyChannel)
      コンテンツエンリッチャーの返信チャネルを設定します。指定されていないが、リクエストチャネルが設定されている場合、匿名の応答チャネルがリクエストごとに自動的に作成されます。
      パラメーター:
      replyChannel - 返信チャンネル。
    • setReplyChannelName

      public void setReplyChannelName(StringSE replyChannelName)
    • setErrorChannel

      public void setErrorChannel(MessageChannel errorChannel)
      コンテンツエンリッチャーエラーチャネルを設定して、ダウンストリームフローで例外が発生した場合に、エラー処理フローがエンリッチメントに使用する代替オブジェクトを返すことができるようにします。
      パラメーター:
      errorChannel - エラーチャネル。
      導入:
      4.1
    • setErrorChannelName

      public void setErrorChannelName(StringSE errorChannelName)
    • setRequestTimeout

      public void setRequestTimeout(LongSE requestTimeout)
      リクエストメッセージ送信時のタイムアウト値を設定します。明示的に構成されていない場合、デフォルトは 30 秒です。
      パラメーター:
      requestTimeout - ミリ秒単位のタイムアウト値。null であってはなりません。
    • setReplyTimeout

      public void setReplyTimeout(LongSE replyTimeout)
      応答メッセージ受信時のタイムアウト値を設定します。明示的に構成されていない場合、デフォルトは 30 秒です。
      パラメーター:
      replyTimeout - ミリ秒単位のタイムアウト値。null であってはなりません。
    • setRequestPayloadExpression

      public void setRequestPayloadExpression(Expression requestPayloadExpression)
      デフォルトでは、元のメッセージのペイロードが、リクエストチャネルに送信される実際のペイロードとして使用されます。

      この setter の値として SpEL 式を提供することにより、元のペイロードのサブセット、ヘッダー値、その他の解決可能な SpEL 式を、リクエストチャネルに送信されるペイロードのベースとして使用できます。

      式の評価では、完全なメッセージをルートオブジェクトとして使用できます。

      たとえば、(特に)次の SpEL 式が可能です。

      • payload.foo
      • headers.foobar
      • 新しい java.util.Date()
      • "foo" + "bar"

      より高度なロジックが必要な場合(メッセージヘッダーの変更など)、追加のダウンストリームトランスフォーマーを使用してください。

      パラメーター:
      requestPayloadExpression - リクエストペイロード式。
    • setShouldClonePayload

      public void setShouldClonePayload(boolean shouldClonePayload)
      ペイロードオブジェクトを複製してターゲットオブジェクトを作成するかどうかを指定します。これは、Cloneable を実装するペイロード型にのみ適用されます。
      パラメーター:
      shouldClonePayload - ペイロードを複製する必要がある場合は true。
    • setIntegrationEvaluationContext

      public void setIntegrationEvaluationContext(EvaluationContext evaluationContext)
    • getComponentType

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

      public IntegrationPatternType getIntegrationPatternType()
      インターフェースからコピーされた説明: IntegrationPattern
      このコンポーネントが実装するパターン型を返します。
      次で指定:
      インターフェース IntegrationPatterngetIntegrationPatternType 
      オーバーライド:
      クラス AbstractReplyProducingMessageHandlergetIntegrationPatternType 
      戻り値:
      このコンポーネントが実装する IntegrationPatternType
    • doInit

      protected void doInit()
      コンテンツエンリッチャーを初期化します。requestChannel が設定されている場合、内部ゲートウェイをインスタンス化します。
      オーバーライド:
      クラス AbstractReplyProducingMessageHandlerdoInit 
    • handleRequestMessage

      protected ObjectSE handleRequestMessage(Message<?> requestMessage)
      クラスからコピーされた説明: AbstractReplyProducingMessageHandler
      サブクラスはこのメソッドを実装して、リクエストメッセージを処理する必要があります。戻り値は、メッセージ、MessageBuilder、任意のプレーンオブジェクトです。基本クラスは、これらの開始点のいずれかからの返信メッセージの最終的な作成を処理します。戻り値が null の場合、メッセージフローはここで終了します。
      次で指定:
      クラス AbstractReplyProducingMessageHandlerhandleRequestMessage 
      パラメーター:
      requestMessage - リクエストメッセージ。
      戻り値:
      メッセージを処理した結果、または null
    • start

      public void start()
      ライフサイクルの実装。requestChannel が定義されていない場合、このメソッドはゲートウェイが初期化されない場合のように効果がありません。
      次で指定:
      インターフェース Lifecyclestart 
      次で指定:
      インターフェース ManageableLifecyclestart 
    • stop

      public void stop()
      ライフサイクルの実装。requestChannel が定義されていない場合、このメソッドはゲートウェイが初期化されない場合のように効果がありません。
      次で指定:
      インターフェース Lifecyclestop 
      次で指定:
      インターフェース ManageableLifecyclestop 
    • isRunning

      public boolean isRunning()
      ライフサイクルの実装。requestChannel が定義されていない場合、ゲートウェイが初期化されていないため、このメソッドは常に true を返します。
      次で指定:
      インターフェース LifecycleisRunning 
      次で指定:
      インターフェース ManageableLifecycleisRunning