遇到问题
后端开发人员经常会遇到一个问题,自己阅读了许多关于设计模式的书籍或者文章,对23种模式已经非常熟悉了。比如在实际过程成某个业务需要用到啥设计模式时,一脸懵逼了,不懂要如何使用才是正确的。在前些天跟一位研发的老朋友聊起,在开发遇到的一些问题,比如发布订阅如何使用。笔者在这里简素下,也不一定是正确,只做参考学习。
发布订阅3要素
- 定义事件
- 发布事件
- 监听事件
实现过程
定义事件
public class DemoEvent implements Serializable {
private static final long serialVersionUID = 1L;
//事件属性
}
监听事件
@Component
public class DemoListener {
@Async("threadPoolExecutor")
@EventListener(DemoEvent.class)
public void eventProcessing(DemoEvent demoEvent) {
//处理业务
}
}
发布事件
SpringUtil.getApplicationContext().publishEvent(//事件对象);
需要注意:demo中是异步执行,不想异步执行,需要删除Async注解