1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        JFinal-eventJFinal 事件驅(qū)動插件

        聯(lián)合創(chuàng)作 · 2023-09-20 10:06

        JFinal-event是JFinal框架的一個事件驅(qū)動插件,其核心目標是深層次解耦,為您節(jié)約更多時間,去陪戀人、家人和朋友 :)

        事件驅(qū)動模型簡介

        事件驅(qū)動模型也就是我們常說的觀察者,或者發(fā)布-訂閱模型;我是這樣理解他的:

        就仿佛一塊石頭丟進了池塘里,會泛起一圈一圈的漣漪!其他人只要看到漣漪就知道你個二貨又在扔石子·?!?/p>

        接下來先看一個用戶注冊的例子: 輸入圖片說明

        用戶注冊成功后,需要做這么多事:

        1. 加積分

        2. 發(fā)確認郵件

        3. 如果是游戲帳戶,可能贈送游戲大禮包

        4. 索引用戶數(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即可.

        瀏覽 40
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        編輯 分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        編輯 分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            大吊视频一区 | 国产一区播放 | 卖婬老太HD视频 | 偷偷在线观看免费高清av | 欧美国产日韩一区二区在线观看 | 寡妇一级高潮免费观看 | 透明人1未删减版啪啪 | 国产精品久久久久久久久借妻 | 午夜福利视频久久 | 婷婷性爱网 |