クラス ExpressionEvaluatingRequestHandlerAdvice

実装されたすべてのインターフェース:
AdviceInterceptorMethodInterceptorAwareBeanFactoryAwareBeanNameAwareInitializingBeanApplicationContextAwareExpressionCapableNamedComponent

public class ExpressionEvaluatingRequestHandlerAdvice extends AbstractRequestHandlerAdvice
MessageHandler にアドバイスするために使用されます。必要に応じて、2 つの式 "onSuccessExpression" と "onFailureExpression" が評価されます。評価が結果を返す場合、メッセージは必要に応じて onSuccessChannel または onFailureChannel に送信されます。メッセージは、ペイロードに評価結果を含む AdviceMessage と、エンドポイントに送信された元のメッセージを含む inputMessage プロパティです。成功式が例外をスローした場合、失敗式は評価されません。

式が構成されていないがチャネルが構成されている場合、デフォルトの式はメッセージから payload にのみ評価されます。

導入:
2.2
作成者:
Gary Russell, Artem Bilan
  • コンストラクターの詳細

    • ExpressionEvaluatingRequestHandlerAdvice

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

    • setOnSuccessExpressionString

      public void setOnSuccessExpressionString(StringSE onSuccessExpression)
      ハンドラーの呼び出しが成功した後、メッセージに対して評価する式を設定します。successChannel が構成されている場合、デフォルトは payload です。
      パラメーター:
      onSuccessExpression - SpEL 式。
      導入:
      4.3.7
    • setOnSuccessExpression

      public void setOnSuccessExpression(@Nullable Expression onSuccessExpression)
      ハンドラーの呼び出しが成功した後、メッセージに対して評価する式を設定します。successChannel が構成されている場合、デフォルトは payload です。
      パラメーター:
      onSuccessExpression - SpEL 式。
      導入:
      5.0
    • setOnFailureExpressionString

      public void setOnFailureExpressionString(StringSE onFailureExpression)
      ハンドラーの呼び出しが失敗した後、ルートメッセージに対して評価する式を設定します。例外は変数 #exception として利用できます。failureChannel が構成されている場合、デフォルトは payload です。
      パラメーター:
      onFailureExpression - SpEL 式。
      導入:
      4.3.7
    • setOnFailureExpression

      public void setOnFailureExpression(@Nullable Expression onFailureExpression)
      ハンドラーの呼び出しが失敗した後、ルートメッセージに対して評価する式を設定します。例外は変数 #exception として利用できます。failureChannel が構成されている場合、デフォルトは payload です。
      パラメーター:
      onFailureExpression - SpEL 式。
      導入:
      5.0
    • setSuccessChannel

      public void setSuccessChannel(MessageChannel successChannel)
      成功の式を評価した後、AdviceMessage を送信するチャネルを設定します。
      パラメーター:
      successChannel - チャンネル。
    • setSuccessChannelName

      public void setSuccessChannelName(StringSE successChannelName)
      成功の式を評価した後、AdviceMessage を送信する先のチャネル名を設定します。
      パラメーター:
      successChannelName - チャンネル名。
      導入:
      4.3.7
    • setFailureChannel

      public void setFailureChannel(MessageChannel failureChannel)
      失敗式を評価した後、ErrorMessage を送信するチャネルを設定します。
      パラメーター:
      failureChannel - チャンネル。
    • setFailureChannelName

      public void setFailureChannelName(StringSE failureChannelName)
      失敗式を評価した後、ErrorMessage を送信するチャネル名を設定します。
      パラメーター:
      failureChannelName - チャンネル名。
      導入:
      4.3.7
    • setTrapException

      public void setTrapException(boolean trapException)
      true の場合、例外がキャッチされ、null が返されます。デフォルトは false です。
      パラメーター:
      trapException - 例外をトラップするために true。
    • setReturnFailureExpressionResult

      public void setReturnFailureExpressionResult(boolean returnFailureExpressionResult)
      true の場合、onFailureExpression の評価結果が AbstractReplyProducingMessageHandler.handleRequestMessage(Message)の結果として返されます。
      パラメーター:
      returnFailureExpressionResult - true は、評価の結果を返します。
    • setPropagateEvaluationFailures

      public void setPropagateEvaluationFailures(boolean propagateOnSuccessEvaluationFailures)
      true で、onSuccess 式の評価が例外で失敗した場合、例外は呼び出し元にスローされます。false の場合、例外がキャッチされます。デフォルトは false です。onFailure 式の評価では無視されます。元の例外が伝播されます(trapException が true でない場合)。
      パラメーター:
      propagateOnSuccessEvaluationFailures - 設定する propagateOnSuccessEvaluationFailures。
    • onInit

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

      protected ObjectSE doInvoke(AbstractRequestHandlerAdvice.ExecutionCallback callback, ObjectSE target, Message<?> message)
      クラスからコピーされた説明: AbstractRequestHandlerAdvice
      サブクラスは、このメソッドを実装して、MessageHandler に動作を適用します。

      callback.execute() はハンドラーメソッドを呼び出し、その結果、null を返します。

      次で指定:
      クラス AbstractRequestHandlerAdvicedoInvoke 
      パラメーター:
      callback - サブクラスは、このインターフェースで execute() メソッドを呼び出して、ハンドラーメソッドを呼び出します。
      target - ターゲットハンドラー。
      message - ハンドラーに送信されるメッセージ。
      戻り値:
      MessageHandler を呼び出した後の結果。
    • createEvaluationContext

      protected StandardEvaluationContext createEvaluationContext()