监听者模式实践-java事件和事件监听器

使用事件能够使主业务逻辑和从业务逻辑解耦;特别是异步事件监听器,即便处理失败了也不耽误主业务的进行时间;这里就简单的介绍了一些关于spring的eventListener和event的使用错误技巧.web

1.一个事件监听器只作一件事情

好比,用户评论一个商品,咱们除了保存评论信息,还得去1通知商品的商家,2给用户加积分;spring

通常人认为把1,2在一个事件监听器里实现就能够了,但我以为这样不太好,代码的复用率过低; 若是能在一个eventListener里实现发积分的功能,另外一个eventListener里实现发通知的功能,这样就更好些;异步

也符合单一职责的原则;.net

2.不适用状况

和主流程有关的业务不适合关于发布/订阅模式,应该使用职责链模式; 应用内的主流程相关的用service服务调用,应用外的用web服务/feign调用;blog

推荐方案

应用内的使用event订阅发布,应用外使用消息队列来进行订阅发布;队列

关于spring 事件的使用和示例代码;可参考我之前写的博客,站内连接: http://www.javashuo.com/article/p-gepdbbpz-gv.html事件

相关文章
相关标签/搜索