EsperQuick Start
这篇文章的主要目的是了解如何创建一个Esper 并运行一个简单的代码。
1>去http://www.espertech.com/esper/download.php
下载Esper 的lib 加载到测试代码的项目中,或者使用Maven来配置开发环境.
2> 创建一个java 的Event 类
public class OrderEvent {
private String itemName;
private double price;
public OrderEvent(String itemName, double price) {
this.itemName = itemName;
this.price = price;
}
public String getItemName() {
return itemName;
}
public double getPrice() {
return price;
}
}
3>设置Esper
import com.espertech.esper.client.EPAdministrator;
import com.espertech.esper.client.EPServiceProvider;
import com.espertech.esper.client.EPServiceProviderManager;
import com.espertech.esper.client.EPStatement;
import com.espertech.esper.client.EventBean;
import com.espertech.esper.client.UpdateListener;
public class EsperQuickStart1 {
public static void main(String[] agrs){
// 设置Esper Service
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider();
EPAdministrator admin = epService.getEPAdministrator();
// 注册 event type
String OrderEvent = OrderEvent.class.getName();
admin.getConfiguration().addEventType("OrderEvent", OrderEvent);
// 创建一个EPL(Event Processing Language)
String expression = "select avg(price)from OrderEvent.win:time(30 sec)";
// 将这个EPL 注册到Esper 中。
EPStatement statement = epService.getEPAdministrator().createEPL(expression);
// 实例化一个 listener
MyListener listerner = new MyListener();
//向这个EPL中添加 listener 当满足 EPL的条件时 会触发listener 完成listener中的内容
statement.addListener(listerner);
//实例化Order Event
OrderEvent event = new OrderEvent("shirt", 74.50);
//向 Esper 发送Event
epService.getEPRuntime().sendEvent(event);
}
}
class MyListener implements UpdateListener{
public void update(EventBean[] newEvents,EventBean[] oldEvents){
//UpdateListenner 中将Event 看做是一种bean 具体会在之后的章节中做详细介绍
EventBean event = newEvents[0];
System.out.println("avg = "+event.get("avg(price)"));
}
}
运行结果: