- 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.
推薦閱讀
- Getting Started with Gulp(Second Edition)
- Oracle從新手到高手
- 自己動手實現Lua:虛擬機、編譯器和標準庫
- Mastering Ember.js
- 劍指JVM:虛擬機實踐與性能調優
- Apache Karaf Cookbook
- Mastering Ext JS
- 編程菜鳥學Python數據分析
- Java Fundamentals
- SQL Server 2008中文版項目教程(第3版)
- 超簡單:Photoshop+JavaScript+Python智能修圖與圖像自動化處理
- 算法精解:C語言描述
- C Primer Plus(第6版)中文版【最新修訂版】
- Mastering Python
- Apache Kafka 1.0 Cookbook