public class ExpressionEvaluatingTransactionSynchronizationProcessor extends IntegrationObjectSupport implements TransactionSynchronizationProcessor
TransactionSynchronizationFactory
allows you to configure SpEL expressions, with their execution being coordinated
(synchronized) with a transaction - see
TransactionSynchronization.
Expressions for before-commit, after-commit, and after-rollback
are supported, together with a channel for each where the evaluation result
(if any) will be sent.
For each sub-element you can specify 'expression' and/or 'channel' attributes. If only the 'channel' attribute is present the received Message will be sent there as part of a particular synchronization scenario.
If only the 'expression' attribute is present and the result of an expression is a non-Null value, a Message with the result as the payload will be generated and sent to a default channel (NullChannel) and will appear in the logs. If you want the evaluation result to go to a specific channel add a 'channel' attribute. If the result of an expression is null or void, no Message will be generated.
EXPRESSION_PARSER, logger| Constructor and Description |
|---|
ExpressionEvaluatingTransactionSynchronizationProcessor() |
| Modifier and Type | Method and Description |
|---|---|
protected StandardEvaluationContext |
createEvaluationContext() |
protected void |
onInit()
Subclasses may implement this for initialization logic.
|
void |
processAfterCommit(IntegrationResourceHolder holder) |
void |
processAfterRollback(IntegrationResourceHolder holder) |
void |
processBeforeCommit(IntegrationResourceHolder holder) |
void |
setAfterCommitChannel(MessageChannel afterCommitChannel) |
void |
setAfterCommitExpression(Expression afterCommitExpression) |
void |
setAfterRollbackChannel(MessageChannel afterRollbackChannel) |
void |
setAfterRollbackExpression(Expression afterRollbackExpression) |
void |
setBeforeCommitChannel(MessageChannel beforeCommitChannel) |
void |
setBeforeCommitExpression(Expression beforeCommitExpression) |
void |
setIntegrationEvaluationContext(EvaluationContext evaluationContext) |
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, toStringpublic ExpressionEvaluatingTransactionSynchronizationProcessor()
public void setIntegrationEvaluationContext(EvaluationContext evaluationContext)
public void setBeforeCommitChannel(MessageChannel beforeCommitChannel)
public void setAfterCommitChannel(MessageChannel afterCommitChannel)
public void setAfterRollbackChannel(MessageChannel afterRollbackChannel)
public void setBeforeCommitExpression(Expression beforeCommitExpression)
public void setAfterCommitExpression(Expression afterCommitExpression)
public void setAfterRollbackExpression(Expression afterRollbackExpression)
protected void onInit()
IntegrationObjectSupportonInit in class IntegrationObjectSupportpublic void processBeforeCommit(IntegrationResourceHolder holder)
processBeforeCommit in interface TransactionSynchronizationProcessorpublic void processAfterCommit(IntegrationResourceHolder holder)
processAfterCommit in interface TransactionSynchronizationProcessorpublic void processAfterRollback(IntegrationResourceHolder holder)
processAfterRollback in interface TransactionSynchronizationProcessorprotected StandardEvaluationContext createEvaluationContext()