spring事件是一个监听者模式,监听者模式包含了一个监听者Listener与之对应的事件Event,还有一个事件发布者EventPublish,过程就是EventPublish发布一个事件,被监听者捕获到,然后执行事件相应的方法。
1、定义事件,继承ApplicationEvent ,写构造函数。
@Data
public class MessageEvent extends ApplicationEvent {
private long fromUserId;
private long toUserId;
private long postId;
private int event; //事件类型
public MessageEvent(Object source,int event) {
super(source);
this.event = event;
}
}
2、定义监听者,实现ApplicationListener接口,重写onApplicationEvent方法。
@Slf4j
@Component
public class MessageEventHandle implements ApplicationListener<MessageEvent> {
//泛型代表着要监听的事件
@Override
public void onApplicationEvent(MessageEvent messageEvent) {
//TODO 业务处理
//代表着不同的事件
if (messageEvent.getEvent() == Consts.MESSAGE_EVENT_COLLECT_POST) {
log.info("---------------> 收藏" + messageEvent.toString(