Spring监听器的使用
1. 监听器
java
package com.haobai.crm.service.co.ymp.listener;
import com.haobai.crm.service.co.ymp.events.OrderPushEvent;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
/**
* @author yang
* @createTime 2025/3/20
* @since 1.0.0
*/
@Slf4j
@Component
public class OrderPushEventListener implements ApplicationListener<OrderPushEvent> {
/**
* Handle an application event.
*
* @param event the event to respond to
*/
@Override
public void onApplicationEvent(@NotNull OrderPushEvent event) {
log.info("onApplicationEvent接收到订单推送事件:{}, {}", event.getCoYmpAuditBatchDO(), event.getAuditStatusEnum());
}
@EventListener
public void onOrderPushEvent(@NotNull OrderPushEvent event) {
log.info("onOrderPushEvent接收到订单推送事件:{}, {}", event.getCoYmpAuditBatchDO(), event.getAuditStatusEnum());
}
}2. EventObject
java
package com.haobai.crm.service.co.ymp.events;
import com.haobai.crm.common.enums.workorder.AuditStatusEnum;
import com.haobai.crm.domain.co.ymp.CoYmpAuditBatchDO;
import org.springframework.context.ApplicationEvent;
/**
* @author yang
* @createTime 2025/3/20
* @since 1.0.0
*/
public class OrderPushEvent extends ApplicationEvent {
private final CoYmpAuditBatchDO coYmpAuditBatchDO;
private final AuditStatusEnum auditStatusEnum;
public OrderPushEvent(Object source, CoYmpAuditBatchDO coYmpAuditBatchDO, AuditStatusEnum auditStatusEnum) {
super(source);
this.coYmpAuditBatchDO = coYmpAuditBatchDO;
this.auditStatusEnum = auditStatusEnum;
}
public CoYmpAuditBatchDO getCoYmpAuditBatchDO() {
return coYmpAuditBatchDO;
}
public AuditStatusEnum getAuditStatusEnum() {
return auditStatusEnum;
}
}3. 发布事件
java
@Resource
private ApplicationEventPublisher publisher;
OrderPushEvent orderPushEvent = new OrderPushEvent(this, coYmpAuditBatchDO, byCode);
publisher.publishEvent(orderPushEvent);