@EventListener @Target(value={METHOD,ANNOTATION_TYPE}) @Retention(value=RUNTIME) @Documented public @interface TransactionalEventListener
EventListener that is invoked according to a TransactionPhase.
If the event is not published within the boundaries of a managed 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 on your annotated method
allows you to prioritize that listener amongst other listeners running in the same phase.
| Modifier and Type | Optional Element and Description |
|---|---|
Class<?>[] |
classes
The event classes that this listener handles.
|
String |
condition
Spring Expression Language (SpEL) attribute used for making the event
handling conditional.
|
boolean |
fallbackExecution
Whether the event should be processed if no transaction is running.
|
TransactionPhase |
phase
Phase to bind the handling of an event to.
|
Class<?>[] |
value
Alias for
classes(). |
public abstract TransactionPhase phase
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
Default is "", meaning the event is always handled.
EventListener.condition()