- 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.
推薦閱讀
- LabVIEW Graphical Programming Cookbook
- 移動UI設計(微課版)
- Android開發(fā)精要
- 基于差分進化的優(yōu)化方法及應用
- bbPress Complete
- Raspberry Pi Home Automation with Arduino(Second Edition)
- Web Developer's Reference Guide
- 大學計算機應用基礎(Windows 7+Office 2010)(IC3)
- Hands-On ROS for Robotics Programming
- Getting Started with Windows Server Security
- Swift iOS Programming for Kids
- 信息安全技術(第2版)
- Modern R Programming Cookbook
- OpenCV輕松入門:面向Python
- Access 2013數(shù)據(jù)庫應用案例課堂