JFinal-eventJFinal 事件驱动插件
JFinal-event是JFinal框架的一个事件驱动插件,其核心目标是深层次解耦,为您节约更多时间,去陪恋人、家人和朋友 :)
事件驱动模型简介
事件驱动模型也就是我们常说的观察者,或者发布-订阅模型;我是这样理解他的:
就仿佛一块石头丢进了池塘里,会泛起一圈一圈的涟漪!其他人只要看到涟漪就知道你个二货又在扔石子·。·
接下来先看一个用户注册的例子:
图片来自开涛的博客详解Spring事件驱动模型
请将图片中的Service理解成业务
用户注册成功后,需要做这么多事:
加积分
发确认邮件
如果是游戏帐户,可能赠送游戏大礼包
索引用户数据 …………
如果这些业务都耦合到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即可.
评论
Perlbal事件驱动服务器
Perlbal是一个用Perl编写的单线程的事件驱动服务器,可充当Web服务器和HTTP负载均衡。Perlbal被使用在http://www.livejournal.com/特点快,小,可管理的htt
Perlbal事件驱动服务器
0
libhv异步事件驱动库
libhv是一个跨平台的类似libevent、libev、libuv的异步事件驱动库,提供了更加简单的API接口和更加丰富的协议。Features跨平台(Linux,Windows,Mac)事件循环(
libhv异步事件驱动库
0
WeEvent分布式事件驱动架构
什么是WeEvent?WeEvent是一套分布式事件驱动架构,实现了可信、可靠、高效的跨机构、跨平台事件通知机制。WeEvent由微众银行自主研发并完全开源,秉承分布式商业模式中对等合作、智能协同、价
WeEvent分布式事件驱动架构
0