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