JFinal-event是一个模仿的Spring中的消息事件插件。专为JFinal设计,无任何第三方依赖,小巧玲珑。
其核心目标是深层次解耦,为您节约更多时间,去陪恋人、家人和朋友 :)

1. JFinal-event插件配置
// 初始化插件
EventPlugin plugin = new EventPlugin();
// 开启全局异步
plugin.async();
// 设置扫描jar包,默认不扫描
plugin.scanJar();
// 设置监听器默认包,默认全扫描
plugin.scanPackage("net.dreamlu");2. JFinal添加插件
只需要在JFinal的config 插件配置处,添加即可~
me.add(plugin);
3. 发送事件(事件源头、比如下单)
boolean temp = orderModel.save();
if (temp) {
EventKit.post("save", new OrderEvent(orderModel));
}4. 编写下单事件
建议对某一`model`的某一状态的监听、例如下单`OrderEvent`
public class OrderEvent extends ApplicationEvent {
private static final long serialVersionUID = 6994987952247306131L;
public OrderEvent(Object source) {
super(source);
}
}5. 编写监听器(例如:订单保存时发送邮件、发送短信等)
// 注解标记,切勿忘记
// @Listener(order = 1, enableAsync = true, tag="save")
// 监听器执行顺序order = 1 越小越优先执行,默认 Integer.MAX_VALUE
// 单个监听器的,同步或者异步开关enableAsync = true。当然需要先开启EventPlugin全局异步
// 指定event tag,重用event。EventKit.post("save", event);
@Listener(order = 2, tag = "save")
public class OrderEmailListener implements ApplicationListener<OrderEvent> {
@Override
public void onApplicationEvent(OrderEvent event) {
OrderModel order = (OrderModel) event.getSource();
// 你的逻辑
// EmailUtils.sendXxxxx
}
}
@Listener(enableAsync = true, tag = "save")
public class OrderSMSListener implements ApplicationListener<OrderEvent> {
@Override
public void onApplicationEvent(OrderEvent event) {
OrderModel order = (OrderModel) event.getSource();
// 你的逻辑
// SMSUtils.sendXxxxx
}
}当然,此次更新之后相当于整个项目中可只编写一个ObjectEvent,为了维护方便,建议大家还是根据Model来编写,以免日后维护时蒙逼~
jar包下载:http://maven.aliyun.com/nexus/#nexus-search;quick~jfinal-event
以上版本均已上传到maven仓库~
<dependency> <groupId>net.dreamlu</groupId> <artifactId>JFinal-event</artifactId> <version>1.4.0</version> </dependency>
源码地址:http://git.oschina.net/596392912/JFinal-event
QQ交流群:237587118
项目:JFinal-event