1.在你的Controller注入
@Autowired
private ApplicationEventPublisher publisher;
2.然后在你需要发布事件的地方,例如下面这样
@PostMapping("/selectAll")
public String selectAll(){
Userd user = new Userd();
user.setPassword("fdsf");
user.setUsername("dfsa");
//发布事件
publisher.publishEvent(user);
return "ss";
3.事件监听
@Component
public class EventHandle {
//添加此注解可异步执行
@Async
//事件监听注解
@EventListener
//参数类型要和发布者一致,通过参数类型来监听的
public void handle(Userd event) throws InterruptedException {
Thread.sleep(5000);
System.out.println(event.toString());
}
@Async
@EventListener
public void handle1(Userd event){
System.out.println(event.getPassword());
}
}
上图示例两个方法都会监听Userd类型参数的事件,所以两个方法都会执行。