问题描述
现在项目中有一个报表生成的模块,以前的做法是用了一个死循环,每隔几秒钟去生成一次;就想换一种做法,想到了spring的监听器。此demo中我为了方便,用的是springboot,ssm项目中完全一样。
事件类
首先要有一个事件,这个事件用于区别你的操作、比如删除、增加都对应一个事件。
/**
* 事件类,继承ApplicationEvent
*/
public class StudentAddEvent extends ApplicationEvent {
private Student student;
public StudentAddEvent(Object source,Student student) {
super(source);
this.student=student;
}
public String getInfo() {
return student.toString();
}
}
监听器类
有了事件还不够,还必须要有一个监听器去监听该事件
/**
* 事件监听器类,实现ApplicationListener,传入一个泛型类,
* 如果不传,需要手动判断是否是你需要的事件类型
*/
@Component
public class StudentAddListener implements ApplicationListener<StudentAddEv