public class ExpressionEvaluatingRequestHandlerAdvice extends AbstractRequestHandlerAdvice
MessageHandler
をアドバイスするために使用されます。2 つの式 "onSuccessExpression" と "onFailureExpression" は、適切な場合に評価されます。評価によって結果が返された場合、メッセージが onSuccessChannel または onFailureChannel に適宜送信されます。メッセージは、ペイロードに評価結果を含む AdviceMessage
と、エンドポイントに送信された元のメッセージを含む inputMessage
プロパティです。成功式が例外をスローした場合、失敗式は評価されません。 式が構成されていないがチャネルが構成されている場合、デフォルトの式はメッセージから payload
にのみ評価されます。
修飾子と型 | クラスと説明 |
---|---|
static class | ExpressionEvaluatingRequestHandlerAdvice.MessageHandlingExpressionEvaluatingAdviceException |
AbstractRequestHandlerAdvice.ExecutionCallback, AbstractRequestHandlerAdvice.ThrowableHolderException
EXPRESSION_PARSER, logger
コンストラクターと説明 |
---|
ExpressionEvaluatingRequestHandlerAdvice() |
修飾子と型 | メソッドと説明 |
---|---|
protected StandardEvaluationContext | createEvaluationContext() |
protected ObjectSE | doInvoke(AbstractRequestHandlerAdvice.ExecutionCallback callback, ObjectSE target, Message<?> message) サブクラスは、このメソッドを実装して、 MessageHandler に動作を適用します。 |
protected void | onInit() サブクラスは、初期化ロジック用にこれを実装できます。 |
void | setFailureChannel(MessageChannel failureChannel) 失敗式を評価した後、 ErrorMessage を送信するチャネルを設定します。 |
void | setFailureChannelName(StringSE failureChannelName) 失敗式を評価した後、 ErrorMessage を送信するチャネル名を設定します。 |
void | setOnFailureExpression(Expression onFailureExpression) ハンドラーの呼び出しが失敗した後にルートメッセージに対して評価する式を設定します。 |
void | setOnFailureExpressionString(StringSE onFailureExpression) ハンドラーの呼び出しが失敗した後にルートメッセージに対して評価する式を設定します。 |
void | setOnSuccessExpression(Expression onSuccessExpression) ハンドラーの呼び出しが成功した後、メッセージに対して評価する式を設定します。 |
void | setOnSuccessExpressionString(StringSE onSuccessExpression) ハンドラーの呼び出しが成功した後、メッセージに対して評価する式を設定します。 |
void | setPropagateEvaluationFailures(boolean propagateOnSuccessEvaluationFailures) true の場合、onSuccess 式の評価が例外で失敗すると、呼び出し元に例外がスローされます。 |
void | setReturnFailureExpressionResult(boolean returnFailureExpressionResult) true の場合、onFailureExpression の評価結果が AbstractReplyProducingMessageHandler.handleRequestMessage(Message) の結果として返されます。 |
void | setSuccessChannel(MessageChannel successChannel) 成功の式を評価した後、 AdviceMessage を送信するチャネルを設定します。 |
void | setSuccessChannelName(StringSE successChannelName) 成功の式を評価した後、 AdviceMessage を送信する先のチャネル名を設定します。 |
void | setTrapException(boolean trapException) true の場合、例外がキャッチされ、null が返されます。 |
invoke, unwrapExceptionIfNecessary, unwrapThrowableIfNecessary
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getComponentType, 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
public ExpressionEvaluatingRequestHandlerAdvice()
public void setOnSuccessExpressionString(StringSE onSuccessExpression)
successChannel
が構成されている場合、デフォルトは payload
です。onSuccessExpression
- SpEL 式。public void setOnSuccessExpression(@Nullable Expression onSuccessExpression)
successChannel
が構成されている場合、デフォルトは payload
です。onSuccessExpression
- SpEL 式。public void setOnFailureExpressionString(StringSE onFailureExpression)
#exception
として利用できます。failureChannel
が構成されている場合、デフォルトは payload
です。onFailureExpression
- SpEL 式。public void setOnFailureExpression(@Nullable Expression onFailureExpression)
#exception
として利用できます。failureChannel
が構成されている場合、デフォルトは payload
です。onFailureExpression
- SpEL 式。public void setSuccessChannel(MessageChannel successChannel)
AdviceMessage
を送信するチャネルを設定します。successChannel
- チャンネル。public void setSuccessChannelName(StringSE successChannelName)
AdviceMessage
を送信する先のチャネル名を設定します。successChannelName
- チャンネル名。public void setFailureChannel(MessageChannel failureChannel)
ErrorMessage
を送信するチャネルを設定します。failureChannel
- チャンネル。public void setFailureChannelName(StringSE failureChannelName)
ErrorMessage
を送信するチャネル名を設定します。failureChannelName
- チャンネル名。public void setTrapException(boolean trapException)
trapException
- 例外をトラップするために true。public void setReturnFailureExpressionResult(boolean returnFailureExpressionResult)
returnFailureExpressionResult
- true は、評価の結果を返します。public void setPropagateEvaluationFailures(boolean propagateOnSuccessEvaluationFailures)
propagateOnSuccessEvaluationFailures
- 設定する propagateOnSuccessEvaluationFailures。protected void onInit()
IntegrationObjectSupport
IntegrationObjectSupport
の onInit
protected ObjectSE doInvoke(AbstractRequestHandlerAdvice.ExecutionCallback callback, ObjectSE target, Message<?> message)
AbstractRequestHandlerAdvice
MessageHandler
に動作を適用します。callback.execute() はハンドラーメソッドを呼び出し、その結果、null を返します。
AbstractRequestHandlerAdvice
の doInvoke
callback
- サブクラスは、このインターフェースで execute() メソッドを呼び出して、ハンドラーメソッドを呼び出します。target
- ターゲットハンドラー。message
- ハンドラーに送信されるメッセージ。MessageHandler
を呼び出した後の結果。protected StandardEvaluationContext createEvaluationContext()