JFinal-event的配置和使用

JFinal-event是JFinal框架的一个事件驱动插件,其核心目标是深层次解耦,为您节约更多时间,去陪恋人、家人和朋友 :)

使用场景我不过多介绍,你可以查看开源中国里我的示例说明:http://www.oschina.net/p/jfinal-event,讨论中也有小伙伴分享的使用场景!

下面,我们来说说使用:

1. 添加JFinal-event插件和插件的配置

@Override
public void configPlugin(Plugins me) {

	......

	EventPlugin eventPlugin = new EventPlugin();
	// 全局开启异步,默认不开启
	eventPlugin.async();
	// 设置扫描jar包,默认不扫描
	eventPlugin.scanJar();
	// 设置默认扫描的包命,默认全扫描
	eventPlugin.scanPackage("net.dreamlu");

	me.add(eventPlugin);
}

2. 发送事件(事件源头、比如下单)

boolean temp = orderModel.save();
if (temp) {
    EventKit.postEvent(new OrderSaveEvent(orderModel));
}

3. 编写下单事件

对某一model的某一状态的监听、例如下单OrderSaveEvent

public class OrderSaveEvent extends ApplicationEvent {

    private static final long serialVersionUID = 6994987952247306131L;

    public OrderSaveEvent(Object source) {
        super(source);
    }

}

4. 编写监听器(例如:订单保存时发送邮件、发送短信等)推荐按需求分拆为多个监听器

// 注解标记,切勿忘记
@Listener
public class OrderSaveEmailListener implements ApplicationListener<OrderSaveEvent> {

    @Override
    public void onApplicationEvent(OrderSaveEvent event) {
        OrderModel order = (OrderModel) event.getSource();

        // 你的逻辑
        // EmailUtils.sendXxxxx
    }

}

JFinal-event v0.4以上@Listener注解添加了新的参数,支持监听器执行顺序和单个监听器的异步开关

//order越小越优先执行
@Listener(order = 1, enableAsync = true)

大家在是用过程中遇到什么问题可以加入如梦技术QQ群:237587118 交流,感谢大家的使用~

捐助共勉
版权声明:若无特殊注明,本文皆为原创,转载请保留文章出处。