Prototype功能預覽七:一個註解分離日誌及事件的發送於處理邏輯

框架整體介紹:http://blog.csdn.net/flyxxxxx/article/category/7055640

對此框架有興趣或想參與開發的請加QQ羣:255195191

在基於Spring中的項目開發中,如果要寫一些用戶操作日誌或拋出事件、短信發送、郵件發送等,通常代碼可能是下面這樣:

@RequestMapping(...)

public Object business1(){

    //do something

   eventService.send(myevent);//拋出事件

   logService.log(...);//記錄日誌

}

很明顯,如果某天需要調整架構或是取消部分日誌代碼時,上面的代碼均可能需要進行修改。

在Prototype框架中,簡化爲:

@Prototype
public class MsgBusiness {

   //異步日誌及事件

   void async(){

      log();

     sendEvent();

   }


    @Msg(type="log")//定義消息類型爲log
    public Log log(){
        return new Log(....);//構造一個日誌對象返回
    }

    @Msg(type="event")
    public MyEvent sendEvent(){
        return new MyEvent(....);//構造一個日誌對象返回
    }

}

//消息的偵聽處理類

@Subscribe(type = { "log" })
@Slf4j
public class LogMsgBusiness {
    
    public void onMessage(Log log){
        log.info("Reveive msg : "+value);//在這裏記錄日誌,事件處理與此類似
    }

}

基於Prototype的框架處理日誌及事件等消息時,是否處理相關消息,如何處理均與業務代碼完全無關,可以作到業務處理與實現邏輯的完全解耦。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章