org.axonframework.eventhandling.annotation
Annotation Type EventHandler
@Documented
@Retention(value=RUNTIME)
@Target(value=METHOD)
public @interface EventHandler
Annotation to be placed on methods that can handle events.
Annotated methods must comply to a few simple rules: - The method must accept 1 or 2 parameter
parameters
- The first parameter must be a subtype of
DomainEvent - If specified,
the second parameter must be of type
TransactionStatus - Return values are
allowed, but are ignored by dispatchers
- Exceptions are highly discouraged, and are likely to be caught and
ignored by the dispatchers
For each event, only a single annotated method will be invoked. This method is resolved in the following order
- First, the event handler methods of the actual class (at runtime) are searched
- If a method is found with a
parameter that the domain event can be assigned to, it is marked as eligible
- After a class has been evaluated
(but before any super class), the most specific event handler method is called. That means that if an event handler
for a class A and one for a class B are eligible, and B is a subclass of A, then the method with a parameter of type
B will be chosen
- If no method is found in the actual class, its super class is evaluated.
- If still no method
is found, the event listener ignores the event
If you do not want any events to be ignored, but rather have some logging of the fact that an unhandled event came
by, make an abstract superclass that contains an event handler method that accepts DomainEvent. Note: if there are two event handler methods accepting the same argument,
the behavior is undefined.
- Since:
- 0.1
- Author:
- Allard Buijze
- See Also:
AnnotationEventListenerAdapter
Copyright © 2011. All Rights Reserved.