spring Event事件处理

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类型参数的事件,所以两个方法都会执行。


版权声明:本文为Tao____原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。