1.先定义一个事件,该类继承 ApplicationEven的抽象类

import org.springframework.context.ApplicationEvent;

public class DemoTask extends ApplicationEvent {

    private String id;

    public OrgRegisterTask(Object source, Stringid) {
super(source);
this.id = id;
} public String getId() {
return id;
}
}

2.定义一个监听者,时刻监听者发布者是否有发布任务。

import com.alibaba.fastjson.JSON;
import com.xxx.event.OrgRegisterTask;
import com.xxx.service.DemoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Component; @Slf4j
@Component
@EnableAsync
public class DemoTaskHandler { @Autowired
private DemoService demoService; @EventListener
@Async
public void demoHandler(DemoTask demoTask) {
demoService.registerAccount(demoTask.getId());
} }

3.事件发布

import javax.annotation.Resource;
import org.springframework.context.ApplicationEventPublisher; @Component
public class DemoPubLisher { @Resource
private ApplicationEventPublisher publisher; //事件发布方法
public void pushListener(String id){
publisher.publishEvent(new DemoTask(this,id));
} }

在类上,我们增加了注解@EnableAsync 表示开启异步@Async注解,不使用@EnableAsync注解,@Async是不会生效的;@Component 把bean注册到spring容器中;.在方法上我们使用了@EventListener(事件监听器)。

最新文章

  1. jvm死锁解决
  2. 谈事件冒泡(Bubble)和事件捕捉(capture)
  3. hive中的桶
  4. struts2升级文档
  5. SrcollView分页加载数据(第二种方法 自定义listView)
  6. 动态加载JS代码
  7. unity 3d 获取鼠标当前坐标
  8. 【52】写了placement new也要写placement delete
  9. Head First 设计模式系列之一----模板模式(java版)
  10. HW5.7
  11. Linux Stu
  12. 执行curl -sSL 提示curl: (35) SSL connect error
  13. QTableWidget简单操作
  14. C++外观设计模式模式(三)
  15. C# Conversion Keywords
  16. Python windows安装MYSQL_db
  17. PHP使用UTF8编码读取ACCESS的乱码问题解决方案(转)
  18. Grunt经常使用插件及演示样例说明
  19. Linux 查看磁盘分区、文件系统、磁盘的使用情况相关的命令和工具介绍
  20. Mysql使用binlog恢复数据解决误操作问题的两种方法

热门文章

  1. python flask后端request获取参数的几种方式整理
  2. Corundum:100G NIC学习(二)——仿真
  3. HDFS存储流程及HA
  4. appsettings.json用机密替换字符串-利用 VisualStudio 管理用户机密
  5. E-MU1212m(E-MU1616m)在Win10(Win11)中的驱动安装
  6. mybatis动态标签——choose、when、otherwise
  7. CF1098D 题解
  8. postman连接mysql数据库
  9. VMware-包体选择
  10. 人脸识别:face_recognition初尝试