Event Priority
If there are multi CDI @Obsevers methods defined, in the former CDI, there is no way to ensure they are executed in a certain order.
In CDI 2.0, this gap is filled by @Priority.
Let's create a simple example to demonstrate it.
Create a bean to fire a CDI Event.
@ViewScoped
@Named("eventBean")
public class EventBean implements Serializable {
private static final Logger LOG = Logger.getLogger(EventBean.class.getName());
@Inject
Event<Message> event;
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public void fireEvent() {
LOG.log(Level.INFO, "fire event async...");
event.fire(new Message(this.message));
}
}The event payload Message.
Observes the events.
Run this application on Glassfish, open browser and navigate to .

Input some message in the input box, you will see the similar info in IDE console.
Grab the source codes from my GitHub account, and have a try.
Last updated
Was this helpful?