上QQ阅读APP看书,第一时间看更新
How it works...
First, we are building a server to manage our event and observers:
public static void main(String[] args){
try(SeContainer container =
SeContainerInitializer.newInstance().initialize()){
container
.getBeanManager()
.fireEvent(new ExampleEvent("event: "
+ System.currentTimeMillis()));
}
}
This will give us all of the resources needed to run the recipe as if it were a Jakarta EE server.
Then, we build an observer, as follows:
public void thisEventBefore(
@Observes @Priority(Interceptor.Priority.APPLICATION - 200)
MyEvent event){
System.out.println("thisEventBefore: " + event.getValue());
}
So, we have three important topics:
- @Observes: This annotation is used to tell the server that it needs to watch the events fired with MyEvent.
- @Priority: This annotation informs in which priority order this observer needs to run; it receives an int parameter, and the execution order is ascendant.
- MyEvent event: This is the event being observed.
In the thisEventBefore method and thisEventAfter, we only changed the @Priority value and the server took care of running it in the right order.