JFinal-event1.4.0发布,新增tag实现事件复用

JFinal-event是一个模仿的Spring中的消息事件插件。专为JFinal设计,无任何第三方依赖,小巧玲珑。

其核心目标是深层次解耦,为您节约更多时间,去陪恋人、家人和朋友 :)

img1435993161334.jpg

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

2016-08-22 15:49

你终于回来分享了,好友没见你来逛逛 jfinal 社区了,有空多来走走啊 ^_^

JFinal

2016-08-22 15:51

社区添加 "点赞" 功能后,给你 1024 个赞

Dreamlu

2016-08-22 15:51

@JFinal 基本上每天都会来的,看到没人at我,我就关了(´°̥̥̥̥̥̥̥̥ω°̥̥̥̥̥̥̥̥`)

JFinal

2016-08-22 15:54

@Dreamlu 不着急,社区的关系链成熟以后,@你的人就多了

要输就输给追求

2016-08-29 10:50

围观大神,偷学技能

Jimmy哥

2016-08-29 14:06

赞一个,实现了订阅规则。但是`发送事件`时,是需要知道有哪些 tag 的,还可以继续解耦