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的框架处理日志及事件等消息时,是否处理相关消息,如何处理均与业务代码完全无关,可以作到业务处理与实现逻辑的完全解耦。


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