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

事件驱动模型简介

事件驱动模型也就是我们常说的观察者,或者发布-订阅模型;我是这样理解他的:

就仿佛一块石头丢进了池塘里,会泛起一圈一圈的涟漪!其他人只要看到涟漪就知道你个二货又在扔石子·。·

接下来先看一个用户注册的例子:

用户注册成功后,需要做这么多事:

  1. 加积分

  2. 发确认邮件

  3. 如果是游戏帐户,可能赠送游戏大礼包

  4. 索引用户数据 …………

如果这些业务都耦合到UserService或者JFinal中的UserController中,将会变得异常复杂。

下面笔者列举使用JFinal-event来解决这类问题

编写用户保存事件

public class UserSaveEvent extends ApplicationEvent { 
    private static final long serialVersionUID = 6994987952247306131L;

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

}

在用户save完成之后触事件

boolean temp = userModel.save();
if (temp) {
    EventKit.postEvent(new UserSaveEvent(userModel));
}

后面就是个个业务的事件监听了,例如邮件业务

// 注解标记,切勿忘记 
@Listener 
public class UserSaveEmailListener implements ApplicationListener { 
@Override public void onApplicationEvent(UserSaveEvent event) {
    ORDErModel order = (UserModel) event.getSource(); 
    // 你的逻辑 
    // EmailUtils.sendXxxxx 
}

}

突然春节临近了,公司需要做活动,注册用户赠送优惠券,你只需要新增一个UserSaveXXXListener即可.

JFinal-event 2.0 发布,JFinal 事件驱动插件
JFinal-event事件驱动插件,无任何第三方依赖,小巧玲珑。一晃Git@OSC上有5个多月没怎么提交代码了,前段时间群里的朋友也说他们公司也在用JFinal-event,深感荣幸。国庆前偶然看到Spring 4.2框架中注释驱动的事件监听器详解,确实比以前方便了不少。于是新建了一个issues要实现成类似的功能。注意:由于比1.x版本更加灵活

发布于 2017-10-10 11:23:30 | 52 次阅读

JFinal-event 1.5.1 发布,JFinal 事件驱动插件
JFinal-event事件驱动插件,无任何第三方依赖,小巧玲珑。JFinal-event自1.0版本之后就没发布过更新新闻。看到不少朋友在用,特意在此发布下近期版本更新记录!v1.4.0 ~ v1.5.1支持JFinal2.2以上版本(包括2.2)2017-04-20 v1.5.1基于rmi的远程Event。2017-03-22 v1.4.2更改默认线程池为SingleThreadExecutor,使异步执行有

发布于 2017-04-28 08:47:02 | 91 次阅读


Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务