内容简介:JFinal-event事件驱动插件,无任何第三方依赖,小巧玲珑。 一晃Git@OSC上有5个多月没怎么提交代码了,前段时间群里的朋友也说他们公司也在用JFinal-event,深感荣幸。 国庆前偶然看到Spring 4.2框架中注释驱动的事...
JFinal-event事件驱动插件,无任何第三方依赖,小巧玲珑。
一晃Git@OSC上有5个多月没怎么提交代码了,前段时间群里的朋友也说他们公司也在用JFinal-event,深感荣幸。
国庆前偶然看到Spring 4.2框架中注释驱动的事件监听器详解,确实比以前方便了不少。于是新建了一个issues要实现成类似的功能。
注意:由于比1.x版本更加灵活,故没去做1.x版本的兼容!
1. 初始化插件
EventPlugin plugin = new EventPlugin();
// 设置为异步,默认同步,或者使用threadPool(ExecutorService executorService)自定义线程池。
plugin.async();
// 设置扫描jar包,默认不扫描
plugin.scanJar();
// 设置监听器默认包,默认全扫描
plugin.scanPackage("net.dreamlu");
// 手动启动插件,用于main方法启动,jfinal中不需要,添加插件即可。
plugin.start();
// 停止插件,用于main方法测试
plugin.stop();2. 事件类
// 继承 ApplicationEvent
public class Test1Event extends ApplicationEvent {
private static final long serialVersionUID = 6994987952247306131L;
public Test1Event(Object source) {
super(source);
}
}3. 监听事件
@EventListener(order = 1, events = Test1Event.class)
public void xxxx(ApplicationEvent event) {
Object xx = event.getSource();
System.out.println(Thread.currentThread().getName() + " " + this.getClass() + " " + "\tsource:" + xx);
}
@EventListener
public void xxxx(Test1Event event) {
Object xx = event.getSource();
System.out.println(Thread.currentThread().getName() + " " + this.getClass() + " " + "\tsource:" + xx);
}4. 发送事件
EventKit.post(new Test1Event("hello1"));@EventListener注解说明
@EventListener(events = Test1Event.class, order = 1, async = true, condition = "event.isExec()")
events支持的事件类型数组,用于将事件方法定义为ApplicationEvent或者自定义父类。
@EventListener(events = Test1Event.class)
public void applicationEvent(ApplicationEvent event) {
String xx = (String) event.getSource();
System.out.println(Thread.currentThread().getName() + "\tsource:" + xx);
}order排序,数值越小越先执行,默认为Integer.MAX_VALUE
async异步执行,需要插件开启async()或者自定义线程池。
condition表达式条件,使用event.xxxx,event.isExec() == true判定event的属性或者方法。
Maven引入:
<dependency> <groupId>net.dreamlu</groupId> <artifactId>JFinal-event</artifactId> <version>2.0.0</version> </dependency>
Jar包下来:http://central.maven.org/maven2/net/dreamlu/JFinal-event/
【声明】文章转载自:开源中国社区 [http://www.oschina.net]
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- azeroth-event:轻量级事件驱动插件
- 架构视角 - DDD、TDD、MDD领域驱动、测试驱动还是模型驱动?
- 事件驱动架构引领产业技术升级: 事件驱动联盟(中国)成立
- 领域驱动设计 (DDD) 实践之路(二):事件驱动与 CQRS
- 领域驱动设计 (DDD) 实践之路(二):事件驱动与 CQRS
- “性能驱动”转向“需求驱动” 中国引领全球超算技术路线
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
高性能MySQL
施瓦茨 (Baron Schwartz)、扎伊采夫 (Peter Zaitsev)、特卡琴科 (Vadim Tkachenko) / 宁海元、周振兴、彭立勋、翟卫祥,刘辉 / 电子工业出版社 / 2013-5-1 / 128.00元
《高性能mysql(第3版)》是mysql 领域的经典之作,拥有广泛的影响力。第3 版更新了大量的内容,不但涵盖了最新mysql 5.5版本的新特性,也讲述了关于固态盘、高可扩展性设计和云计算环境下的数据库相关的新内容,原有的基准测试和性能优化部分也做了大量的扩展和补充。全书共分为16 章和6 个附录,内容涵盖mysql 架构和历史,基准测试和性能剖析,数据库软硬件性能优化,复制、备份和恢复,高可......一起来看看 《高性能MySQL》 这本书的介绍吧!