Class ExpressionEvaluatingTransactionSynchronizationProcessor
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.transaction.ExpressionEvaluatingTransactionSynchronizationProcessor
- All Implemented Interfaces:
Aware
,BeanFactoryAware
,BeanNameAware
,InitializingBean
,ApplicationContextAware
,ExpressionCapable
,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, Artem Bilan
-
Field Summary
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, logger
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected StandardEvaluationContext
protected void
onInit()
Subclasses may implement this for initialization logic.void
void
void
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) Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getComponentType, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
-
Constructor Details
-
ExpressionEvaluatingTransactionSynchronizationProcessor
public ExpressionEvaluatingTransactionSynchronizationProcessor()
-
-
Method Details
-
setIntegrationEvaluationContext
-
setBeforeCommitChannel
-
setAfterCommitChannel
-
setAfterRollbackChannel
-
setBeforeCommitExpression
-
setAfterCommitExpression
-
setAfterRollbackExpression
-
onInit
protected void onInit()Description copied from class:IntegrationObjectSupport
Subclasses may implement this for initialization logic.- Overrides:
onInit
in classIntegrationObjectSupport
-
processBeforeCommit
- Specified by:
processBeforeCommit
in interfaceTransactionSynchronizationProcessor
-
processAfterCommit
- Specified by:
processAfterCommit
in interfaceTransactionSynchronizationProcessor
-
processAfterRollback
- Specified by:
processAfterRollback
in interfaceTransactionSynchronizationProcessor
-
createEvaluationContext
-