org.springframework.integration.transaction
Class ExpressionEvaluatingTransactionSynchronizationProcessor
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.transaction.ExpressionEvaluatingTransactionSynchronizationProcessor
- All Implemented Interfaces:
- org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.InitializingBean, NamedComponent, TransactionSynchronizationProcessor
public class ExpressionEvaluatingTransactionSynchronizationProcessor
- extends IntegrationObjectSupport
- implements TransactionSynchronizationProcessor
This implementation of 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.
- Since:
- 2.2
- Author:
- Gary Russell, Oleg Zhurakousky
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport |
afterPropertiesSet, getBeanFactory, getComponentName, getComponentType, getConversionService, getTaskScheduler, onInit, setBeanFactory, setBeanName, setComponentName, setConversionService, setTaskScheduler, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
ExpressionEvaluatingTransactionSynchronizationProcessor
public ExpressionEvaluatingTransactionSynchronizationProcessor()
setBeforeCommitChannel
public void setBeforeCommitChannel(MessageChannel beforeCommitChannel)
setAfterCommitChannel
public void setAfterCommitChannel(MessageChannel afterCommitChannel)
setAfterRollbackChannel
public void setAfterRollbackChannel(MessageChannel afterRollbackChannel)
setBeforeCommitExpression
public void setBeforeCommitExpression(org.springframework.expression.Expression beforeCommitExpression)
setAfterCommitExpression
public void setAfterCommitExpression(org.springframework.expression.Expression afterCommitExpression)
setAfterRollbackExpression
public void setAfterRollbackExpression(org.springframework.expression.Expression afterRollbackExpression)
processBeforeCommit
public void processBeforeCommit(IntegrationResourceHolder holder)
- Specified by:
processBeforeCommit
in interface TransactionSynchronizationProcessor
processAfterCommit
public void processAfterCommit(IntegrationResourceHolder holder)
- Specified by:
processAfterCommit
in interface TransactionSynchronizationProcessor
processAfterRollback
public void processAfterRollback(IntegrationResourceHolder holder)
- Specified by:
processAfterRollback
in interface TransactionSynchronizationProcessor
createEvaluationContext
protected org.springframework.expression.spel.support.StandardEvaluationContext createEvaluationContext()