An event is consumed by an observer method, and we inform Weld that our method is used to observe an event by annotating a parameter of the method, the event parameter, with @Observes
. The type of event parameter is the event type we want to observe, and we may specify qualifiers on the event parameter to narrow what events we want to observe.
We may have an observer method for all events produced about a Book
event type, as follows:
public void onBookEvent(@Observes Book book) { ... }
Or we may choose to only observe when a Book
is removed, as follows:
public void onBookRemoval(@Observes @Removed Book book) { ... }
An observer method will receive an event to consume if:
The observer method is present on a bean that is enabled within our application
The event object is assignable to the event parameter type of the observer method