JFinal-eventJFinal 事件驅(qū)動插件
JFinal-event是JFinal框架的一個事件驅(qū)動插件,其核心目標是深層次解耦,為您節(jié)約更多時間,去陪戀人、家人和朋友 :)
事件驅(qū)動模型簡介
事件驅(qū)動模型也就是我們常說的觀察者,或者發(fā)布-訂閱模型;我是這樣理解他的:
就仿佛一塊石頭丟進了池塘里,會泛起一圈一圈的漣漪!其他人只要看到漣漪就知道你個二貨又在扔石子·?!?/p>
接下來先看一個用戶注冊的例子:
圖片來自開濤的博客詳解Spring事件驅(qū)動模型
請將圖片中的Service理解成業(yè)務
用戶注冊成功后,需要做這么多事:
加積分
發(fā)確認郵件
如果是游戲帳戶,可能贈送游戲大禮包
索引用戶數(shù)據(jù) …………
如果這些業(yè)務都耦合到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));
}
后面就是個個業(yè)務的事件監(jiān)聽了,例如郵件業(yè)務
// 注解標記,切勿忘記
@Listener
public class UserSaveEmailListener implements ApplicationListener {
@Override public void onApplicationEvent(UserSaveEvent event) {
OrderModel order = (UserModel) event.getSource();
// 你的邏輯
// EmailUtils.sendXxxxx
}
}
突然春節(jié)臨近了,公司需要做活動,注冊用戶贈送優(yōu)惠券,你只需要新增一個UserSaveXXXListener即可.
評論
圖片
表情
