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 org.springframework.expression.spel.support.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(org.springframework.messaging.MessageChannel afterCommitChannel) |
void |
setAfterCommitExpression(org.springframework.expression.Expression afterCommitExpression) |
void |
setAfterRollbackChannel(org.springframework.messaging.MessageChannel afterRollbackChannel) |
void |
setAfterRollbackExpression(org.springframework.expression.Expression afterRollbackExpression) |
void |
setBeforeCommitChannel(org.springframework.messaging.MessageChannel beforeCommitChannel) |
void |
setBeforeCommitExpression(org.springframework.expression.Expression beforeCommitExpression) |
void |
setIntegrationEvaluationContext(org.springframework.expression.EvaluationContext evaluationContext) |
afterPropertiesSet, extractTypeIfPossible, getApplicationContext, getApplicationContextId, getBeanFactory, getChannelResolver, getComponentName, getComponentType, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
public ExpressionEvaluatingTransactionSynchronizationProcessor()
public void setIntegrationEvaluationContext(org.springframework.expression.EvaluationContext evaluationContext)
public void setBeforeCommitChannel(org.springframework.messaging.MessageChannel beforeCommitChannel)
public void setAfterCommitChannel(org.springframework.messaging.MessageChannel afterCommitChannel)
public void setAfterRollbackChannel(org.springframework.messaging.MessageChannel afterRollbackChannel)
public void setBeforeCommitExpression(org.springframework.expression.Expression beforeCommitExpression)
public void setAfterCommitExpression(org.springframework.expression.Expression afterCommitExpression)
public void setAfterRollbackExpression(org.springframework.expression.Expression afterRollbackExpression)
protected void onInit() throws java.lang.Exception
IntegrationObjectSupport
onInit
in class IntegrationObjectSupport
java.lang.Exception
- Any exception.public void processBeforeCommit(IntegrationResourceHolder holder)
processBeforeCommit
in interface TransactionSynchronizationProcessor
public void processAfterCommit(IntegrationResourceHolder holder)
processAfterCommit
in interface TransactionSynchronizationProcessor
public void processAfterRollback(IntegrationResourceHolder holder)
processAfterRollback
in interface TransactionSynchronizationProcessor
protected org.springframework.expression.spel.support.StandardEvaluationContext createEvaluationContext()