esper(2)-事件类型
2024-09-01 12:21:55
1、pojo
package com.ebc.eventtype.pojo.pojo1; import cn.hutool.core.collection.CollUtil;
import com.espertech.esper.client.*;
import lombok.*; import java.util.List;
import java.util.Map; /**
*
* @author yaoyuan2
* @date 2019/3/21
*/
public class PojoTest {
static EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider();
static EPAdministrator admin = epService.getEPAdministrator(); public static void main(String[] args) {
String epl = "select age,children,address from com.ebc.eventtype.pojo.pojo1.Person where name=\"yaoyuan\"";
EPStatement state = admin.createEPL(epl);
state.addListener(new UpdateListener() {
@Override
public void update(EventBean[] newEvents, EventBean[] oldEvents) {
if (newEvents != null) {
Address address = (Address)newEvents[0].get("address");
List<Child> children = (List<Child>)newEvents[0].get("children");
Integer age = (Integer)newEvents[0].get("age"); System.out.println("address =" + address.getRoad());
System.out.println("children =" + children);
System.out.println("age =" + age);
}
}
});
EPRuntime runtime = epService.getEPRuntime(); Person p1 = new Person();
p1.setName("yaoyuan");
p1.setAge(20);
p1.setChildren(CollUtil.newArrayList(new Child("c1", 1), new Child("c2", 2)));
p1.setAddress(new Address("解放道", "食品大街", 30));
runtime.sendEvent(p1); Person p2 = new Person();
p2.setName("yaoyuan2");
p2.setAge(21);
p2.setChildren(CollUtil.newArrayList(new Child("c1", 1), new Child("c2", 2)));
p2.setAddress(new Address("燕顺路", "开发区大街", 31));
runtime.sendEvent(p2);
}
}
@Setter
@Getter
@ToString
class Person {
String name;
int age;
List<Child> children;
Map<String,Integer> phones;
Address address;
} @Setter
@Getter
@ToString
@AllArgsConstructor
@NoArgsConstructor
class Child {
String name;
int gender; } @Setter
@Getter
@ToString
@AllArgsConstructor
@NoArgsConstructor
class Address {
String road;
String street;
int houseNo;
}
输出
address =解放道
children =[Child(name=c1, gender=1), Child(name=c2, gender=2)]
age =20
2、Map
package com.ebc.eventtype.map; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Console;
import com.espertech.esper.client.*; import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* @author yaoyuan2
* @date 2019/3/22
*/
public class MapTest {
public static void main(String[] args) {
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider();
EPAdministrator admin = epService.getEPAdministrator();
// Person定义
Map<String,Object> person = new HashMap<String,Object>();
person.put("name", String.class);
person.put("age", int.class);
person.put("children", List.class);
person.put("phones", Map.class);
// 注册Person到Esper
admin.getConfiguration().addEventType("MyPersonMap", person); String epl = "select name,children from MyPersonMap where name=\"yaoyuan2\"";
EPStatement state = admin.createEPL(epl);
state.addListener(new UpdateListener() {
@Override
public void update(EventBean[] newEvents, EventBean[] oldEvents) {
if (newEvents != null) {
Console.log("name={},children={}",newEvents[0].get("name"),newEvents[0].get("children"));
}
}
});
EPRuntime runtime = epService.getEPRuntime();
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("name", "yaoyuan2");
map1.put("children", CollUtil.newArrayList("大毛","二毛"));
runtime.sendEvent(map1, "MyPersonMap"); }
}
输出
name=yaoyuan2,children=[大毛, 二毛]
3、ObjectArray
package com.ebc.eventtype.array; import com.espertech.esper.client.EPAdministrator;
import com.espertech.esper.client.EPServiceProvider;
import com.espertech.esper.client.EPServiceProviderManager;
import com.espertech.esper.client.EventType; import java.util.Arrays;
import java.util.Map; /**
* @author yaoyuan2
* @date 2019/3/22
*/
public class ObjectArrayTest {
public static void main(String[] args) {
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider();
EPAdministrator admin = epService.getEPAdministrator(); // Address定义
String[] addressPropNames = { "road", "street", "houseNo" };
Object[] addressPropTypes = { String.class, String.class, int.class }; // Child定义
String[] childPropNames = { "name", "age" };
Object[] childPropTypes = { String.class, int.class }; // Person定义
String[] personPropNames = { "name", "age", "children", "phones", "address" };
Object[] personPropTypes = { String.class, int.class, "Child[]", Map.class, "Address" }; // 注册Address到Esper
admin.getConfiguration().addEventType("Address", addressPropNames, addressPropTypes);
// 注册Child到Esper
admin.getConfiguration().addEventType("Child", childPropNames, childPropTypes);
// 注册Person到Esper
admin.getConfiguration().addEventType("Person", personPropNames, personPropTypes); // 新增一个gender属性
admin.getConfiguration().updateObjectArrayEventType("Person", new String[] { "gender" }, new Object[] { int.class }); /** 输出结果:
* Person props: [name, age, children, phones, address, gender]
*/
EventType event = admin.getConfiguration().getEventType("Person");
System.out.println("Person props: " + Arrays.asList(event.getPropertyNames()));
}
}
输出
Person props: [name, age, children, phones, address, gender]
最新文章
- 如何用Azure Web App Services接入微信公众号
- java并发J.U.C AtomicReference VS Volatile
- codeforces 724D(贪心)
- java_jdk_JDK版本切换批处理脚本
- Java多线程系列--“JUC线程池”04之 线程池原理(三)
- SU Demos-06Selecting Traces
- AT&;T Assembly for Linux and Mac (sys_exit)
- try-catch 示例
- 获取表单的初始值,模拟placeholder属性
- 20145305 《Java程序设计》实验五
- 用python写makefile
- web系统架构的演进变化很形象
- 在Servlet中使用JSON
- MFC逆向-消息响应函数的定位
- C# LINQ语法详解
- Mobile 抓包,代理
- Centos7初始化脚本
- metamask源码学习-contentscript.js
- * -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]’
- mybatis源码解析4---Configuration解析
热门文章
- [patl1-046]整除光棍
- HDU 6397(2018多校第8场1001) Character Encoding 容斥
- libmad介绍
- HttpServletResponse和HttpServletRequest详解.RP
- 《Head First Servlets & JSP》-6-会话管理-listener etc. demo
- WebGoat系列实验Injection Flaws
- c#设计模式-单例模式【转】
- JavsScript中JSON相关
- 【bzoj1030】: [JSOI2007]文本生成器 字符串-AC自动机-DP
- 教主的花园 dp