springboot之spring事件监听实践

启动类添加@EnableAsync异步注解。

1.创建事件event并集成ApplicationEvent 。

/**
 * 事件
 *
 * @Author EDZ
 * @Date 2022/7/19
 */

public class xxxxEvent extends ApplicationEvent {
    /**
     * Create a new {@code ApplicationEvent}.
     *
     * @param source the object on which the event initially occurred or with
     *               which the event is associated (never {@code null})
     */
    public xxxxEvent (Object source) {
        super(source);
    }
}
2.创建事件entity。
/**
    事件需要的参数
 * @author sc
 * @date 2022/7/19 10:36 AM
 */
@Data
@Builder
public class xxxEventEntity {

    /**
     * 名称
     */
     String name;

    /**
     * 对象
     */
    Object obj;


}

3.创建事件监听

/**
 * 异步监听事件
 *
 * @author daivd
 * @date 2022-07-19 16:51
 */
@Slf4j
@Component
public class xxxxEventListener {

    @Async
    @Order
    @EventListener({ xxxxAddEvent.class,xxxUpdateEvent.class})
    public void application(Object event) {
        xxxEventEntity  xxxEventEntityObj = null;
        if(event instanceof xxxxAddEvent){
            xxxxAddEvent addEventObj = (xxxxAddEvent) event;
            xxxEventEntityObj = (xxxEventEntity) addEventObj .getSource();
        }else if(event instanceof xxxUpdateEvent){
            xxxUpdateEvent updateEventObj = (xxxUpdateEvent) event;
            xxxEventEntityObj = (xxxEventEntity) updateEventObj.getSource();
        }
    // todo 逻辑处理
}

事件触发

SpringUtil.getApplicationContext().publishEvent(new xxxxEvent (xxxEventEntity .builder().name("张三").build()));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值