springboot 事件订阅

77 阅读1分钟

遇到问题

      后端开发人员经常会遇到一个问题,自己阅读了许多关于设计模式的书籍或者文章,对23种模式已经非常熟悉了。比如在实际过程成某个业务需要用到啥设计模式时,一脸懵逼了,不懂要如何使用才是正确的。在前些天跟一位研发的老朋友聊起,在开发遇到的一些问题,比如发布订阅如何使用。笔者在这里简素下,也不一定是正确,只做参考学习。

发布订阅3要素

  1. 定义事件
  2. 发布事件
  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注解