- Jakarta EE Cookbook
- Elder Moraes
- 168字
- 2021-06-24 16:12:35
How to do it...
This recipe will show you one of the main features introduced by CDI 2.0: ordered observers. Now, you can turn the observer's job into something predictable:
- First, let's create an event to be observed:
public class MyEvent {
private final String value;
public MyEvent(String value){
this.value = value;
}
public String getValue(){
return value;
}
}
- Now, we build our observers and the server that will fire them:
public class OrderedObserver {
public static void main(String[] args){
try(SeContainer container =
SeContainerInitializer.newInstance().initialize()){
container
.getBeanManager()
.fireEvent(new MyEvent("event: " +
System.currentTimeMillis()));
}
}
public void thisEventBefore(
@Observes @Priority(Interceptor.Priority
.APPLICATION - 200)
MyEvent event){
System.out.println("thisEventBefore: " + event.getValue());
}
public void thisEventAfter(
@Observes @Priority(Interceptor.Priority
.APPLICATION + 200)
MyEvent event){
System.out.println("thisEventAfter: " + event.getValue());
}
}
- Also, don't forget to add the beans.xml file to the META-INF folder:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
bean-discovery-mode="all">
</beans>
- Once you run it, you should see a result like this:
INFO: WELD-ENV-002003: Weld SE container
353db40d-e670-431d-b7be-4275b1813782 initialized
thisEventBefore: event -> 1501818268764
thisEventAfter: event -> 1501818268764
Now, let's see how this works.
推薦閱讀
- 數據科學實戰手冊(R+Python)
- 零基礎PHP學習筆記
- Java Web基礎與實例教程(第2版·微課版)
- C程序設計實踐教程
- NGINX Cookbook
- Hands-On GUI Programming with C++ and Qt5
- C++編程兵書
- Simulation for Data Science with R
- QlikView Unlocked
- 遠方:兩位持續創業者的點滴思考
- jQuery技術內幕:深入解析jQuery架構設計與實現原理
- Learning Image Processing with OpenCV
- 深入理解Kafka:核心設計與實踐原理
- WCF編程(第2版)
- Learning ROS for Robotics Programming