前言
在实际业务开发中,业务比较复杂下,核心业务处理完成,需要处理其他若干子业务,如果平铺式的堆叠在一起,可能导致代码很长,耦合度加大,维护难度几何倍数加大。
Spring Event 同步使用
Spring Event 是一个观察者模式,一个Bean处理完成后希望其他Bean能够得到通知,或者说这个Bean的这个行为能被其他Bean观察着,并作出响应。
自定义事件
@Data
@ToString
public class OrderProductEvent extends ApplicationEvent {
/** 订单id **/
private String orderId;
public OrderProductEvent(Object source, String orderId) {
super(source);
this.orderId = orderId;
}
}
定义监听器
@Slf4j
@Component
public class OrderProductListener implements ApplicationListener<OrderProductEvent> {
@SneakyThrows
@Override
public void onApplicationEvent(OrderProductEvent event) {
String orderId = event.getOrderId();
long start = System