模仿一个消息队列达到解耦目的
发布的Service要实现ApplicationEventPublisherAware接口
import org.springframework.context.ApplicationEventPublisherAware;
public class XxxService implments ApplicationEventPublisherAware{
@Setter
private ApplicationEventPublisher applicationEventPublisher; //实现接口的set方法
applicationEventPublisher.publishEvent(new OrderCreatedEvent(order)); //发布一个具体事件
}
具体的事件参数类
package com.cmiinv.shp.api.v1.order.event;
import com.cmiinv.shp.model.generated.TOrder;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@Getter
@RequiredArgsConstructor
public class XxxCreatedEvent {
private final App app;
}
事件监听类
@Component //注入spring
public class XxxEventListener
@EventListener(XxxCreatedEvent.class) //监听具体的事件参数
public void handleXxxCreatedEvent(OrderCreatedEvent event) {
//具体的业务处理方法
}