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. The parameters of the annotated method are resolved using parameter resolvers.

Axon provides a number of parameter resolvers that allow you to use the following parameter types:

For each event, only a single method will be invoked per object instance with annotated methods. This method is resolved in the following order:

  1. First, the event handler methods of the actual class (at runtime) are searched
  2. If a method is found with a parameter that the domain event can be assigned to, it is marked as eligible
  3. 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
  4. If no method is found in the actual class, its super class is evaluated.
  5. 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 any Object.

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, ParameterResolverFactory

Optional Element Summary
 Class<?> eventType
          The type of event this method handles.
 

eventType

public abstract Class<?> eventType
The type of event this method handles. If specified, this handler will only be invoked for message that have a payload assignable to the given payload type. If unspecified, the first parameter of the method defines the type of supported event.

Default:
java.lang.Void.class


Copyright © 2010-2016. All Rights Reserved.