クラス LockRequestHandlerAdvice
java.lang.ObjectSE
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.advice.AbstractRequestHandlerAdvice
org.springframework.integration.handler.advice.LockRequestHandlerAdvice
- 実装されているすべてのインターフェース:
Advice、Interceptor、MethodInterceptor、Aware、BeanFactoryAware、BeanNameAware、InitializingBean、ApplicationContextAware、ComponentSourceAware、ExpressionCapable、NamedComponent
AbstractRequestHandlerAdvice は、lockKey からのメッセージに基づいて AbstractReplyProducingMessageHandler.RequestHandler#handleRequestMessage(Message) 呼び出しへの排他的アクセスを保証します。 メッセージの lockKey が null の場合、呼び出しの周囲にロックはありません。ただし、setDiscardChannel(MessageChannel) が指定されている場合は、代わりにそこにメッセージが送信されます。
- 導入:
- 6.5
- 作成者:
- Artem Bilan
ネストされたクラスの要約
クラス org.springframework.integration.handler.advice.AbstractRequestHandlerAdvice から継承されたネストクラス / インターフェース
AbstractRequestHandlerAdvice.ExecutionCallback, AbstractRequestHandlerAdvice.ThrowableHolderExceptionフィールドのサマリー
クラス org.springframework.integration.context.IntegrationObjectSupport から継承されたフィールド
EXPRESSION_PARSER, loggerコンストラクターの概要
コンストラクターコンストラクター説明LockRequestHandlerAdvice(LockRegistry lockRegistry, ObjectSE lockKey) LockRegistryと固定 (共有) ロックキーに基づいてアドバイスインスタンスを構築します。LockRequestHandlerAdvice(LockRegistry lockRegistry, FunctionSE<Message<?>, ObjectSE> lockKeyFunction) LockRegistryに基づいてアドバイスインスタンスを構築し、リクエストメッセージに対するロックキーの機能を実行します。LockRequestHandlerAdvice(LockRegistry lockRegistry, Expression lockKeyExpression) リクエストメッセージに対するロックキーのLockRegistryおよび SpEL 式に基づいてアドバイスインスタンスを構築します。メソッドのサマリー
修飾子と型メソッド説明protected ObjectSEdoInvoke(AbstractRequestHandlerAdvice.ExecutionCallback callback, ObjectSE target, Message<?> message) サブクラスは、このメソッドを実装して、MessageHandlerに動作を適用します。protected voidonInit()サブクラスは、初期化ロジック用にこれを実装できます。voidsetDiscardChannel(MessageChannel discardChannel) lockKeyが評価されるメッセージをnullに送信するチャネルを設定します。voidsetWaitLockDuration(DurationSE waitLockDuration) Lock.tryLock(long, TimeUnit)SE API のオプションの期間。voidsetWaitLockDurationExpression(Expression waitLockDurationExpression) リクエストメッセージに対してLock.tryLock(long, TimeUnit)SE 期間を評価する SpEL 式。voidsetWaitLockDurationExpressionString(StringSE waitLockDurationExpression) リクエストメッセージに対してLock.tryLock(long, TimeUnit)SE 期間を評価する SpEL 式。voidsetWaitLockDurationFunction(FunctionSE<Message<?>, DurationSE> waitLockDurationFunction) リクエストメッセージに対してLock.tryLock(long, TimeUnit)SE 期間を評価する関数。クラス org.springframework.integration.handler.advice.AbstractRequestHandlerAdvice から継承されたメソッド
invoke, unwrapExceptionIfNecessary, unwrapThrowableIfNecessaryクラス org.springframework.integration.context.IntegrationObjectSupport から継承されたメソッド
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentDescription, getComponentName, getComponentSource, getComponentType, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentDescription, setComponentName, setComponentSource, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
コンストラクターの詳細
LockRequestHandlerAdvice
LockRegistryと固定 (共有) ロックキーに基づいてアドバイスインスタンスを構築します。- パラメーター:
lockRegistry- 使用するLockRegistry。lockKey- すべての呼び出しの静的 (共有) ロックキー。
LockRequestHandlerAdvice
リクエストメッセージに対するロックキーのLockRegistryおよび SpEL 式に基づいてアドバイスインスタンスを構築します。- パラメーター:
lockRegistry- 使用するLockRegistry。lockKeyExpression- リクエストメッセージに対してロックキーを評価するための SpEL 式。
LockRequestHandlerAdvice
public LockRequestHandlerAdvice(LockRegistry lockRegistry, FunctionSE<Message<?>, ObjectSE> lockKeyFunction) LockRegistryに基づいてアドバイスインスタンスを構築し、リクエストメッセージに対するロックキーの機能を実行します。- パラメーター:
lockRegistry- 使用するLockRegistry。lockKeyFunction- リクエストメッセージに対してロックキーを評価する機能。
メソッドの詳細
setWaitLockDuration
Lock.tryLock(long, TimeUnit)SE API のオプションの期間。それ以外の場合は、Lock.lockInterruptibly()が使用されます。- パラメーター:
waitLockDuration-Lock.tryLock(long, TimeUnit)SE の期間。
setWaitLockDurationExpression
リクエストメッセージに対してLock.tryLock(long, TimeUnit)SE 期間を評価するための SpEL 式。DurationSE、long(ミリ秒単位)、ISO-8601 形式の期間文字列として評価できます。- パラメーター:
waitLockDurationExpression- 期間を表す SpEL 式。
setWaitLockDurationExpressionString
リクエストメッセージに対してLock.tryLock(long, TimeUnit)SE 期間を評価するための SpEL 式。DurationSE、long(ミリ秒単位)、ISO-8601 形式の期間文字列として評価できます。- パラメーター:
waitLockDurationExpression- 期間を表す SpEL 式。
setWaitLockDurationFunction
public void setWaitLockDurationFunction(FunctionSE<Message<?>, DurationSE> waitLockDurationFunction) リクエストメッセージに対してLock.tryLock(long, TimeUnit)SE 期間を評価する関数。- パラメーター:
waitLockDurationFunction- 期間に関する関数。
setDiscardChannel
lockKeyが評価されるメッセージをnullに送信するチャネルを設定します。このチャネルが設定されておらず、かつlockKey == nullの場合、呼び出しの前後でロックは行われません。- パラメーター:
discardChannel- キーなしでメッセージを送信するチャネル。
onInit
protected void onInit()クラスからコピーされた説明:IntegrationObjectSupportサブクラスは、初期化ロジック用にこれを実装できます。- オーバーライド:
- クラス
IntegrationObjectSupportのonInit
doInvoke
protected ObjectSE doInvoke(AbstractRequestHandlerAdvice.ExecutionCallback callback, ObjectSE target, Message<?> message) クラスからコピーされた説明:AbstractRequestHandlerAdviceサブクラスは、このメソッドを実装して、MessageHandlerに動作を適用します。callback.execute() はハンドラーメソッドを呼び出し、その結果、null を返します。
- 次で指定:
- クラス
AbstractRequestHandlerAdviceのdoInvoke - パラメーター:
callback- サブクラスは、このインターフェースで execute() メソッドを呼び出して、ハンドラーメソッドを呼び出します。target- ターゲットハンドラー。message- ハンドラーに送信されるメッセージ。- 戻り値:
MessageHandlerを呼び出した後の結果。