@Target(value={METHOD,ANNOTATION_TYPE}) @Retention(value=RUNTIME) @Documented @EventListener public @interface TransactionalEventListener
EventListener that is invoked according to a TransactionPhase.
 If the event is not published within an active transaction, the event is discarded
 unless the fallbackExecution() flag is explicitly set. If a transaction is
 running, the event is processed according to its TransactionPhase.
 
Adding @Order to your annotated
 method allows you to prioritize that listener amongst other listeners running before
 or after transaction completion.
| Modifier and Type | Optional Element and Description | 
|---|---|
| Class<?>[] | classesThe event classes that this listener handles. | 
| String | conditionSpring Expression Language (SpEL) attribute used for making the event
 handling conditional. | 
| boolean | fallbackExecutionWhether the event should be processed if no transaction is running. | 
| TransactionPhase | phasePhase to bind the handling of an event to. | 
| Class<?>[] | valueAlias for  classes(). | 
public abstract TransactionPhase phase
The default phase is TransactionPhase.AFTER_COMMIT.
 
If no transaction is in progress, the event is not processed at
 all unless fallbackExecution() has been enabled explicitly.
public abstract boolean fallbackExecution
@AliasFor(annotation=org.springframework.context.event.EventListener.class,
          attribute="classes")
public abstract Class<?>[] classes
If this attribute is specified with a single value, the annotated method may optionally accept a single parameter. However, if this attribute is specified with multiple values, the annotated method must not declare any parameters.
public abstract String condition
The default is "", meaning the event is always handled.
EventListener.condition()