SpringBoot的事件监听(Listener)

公司做项目最近用到了这个时间监听,今天给大家分享一下

概念

事件监听简单来说 就是发布了一个事件后,监听该类型事件的所有监听器会触发相应的处理逻辑.

例如:当我们在做订单 支付功能的时候 ,当用户支付成功  我们发布支付成功的事件,去扣减库存,通知物流配送等一系列操作.

案例

ApplicationEventPublisher:是一个函数式接口,定义了事件发布的规范,任何的事件发布器ApplicationEventPublisher都是通过调用publishEvent来进行事件的发布

第一步 发布事件
    @Autowired
    private ApplicationEventPublisher publisher;


    @PostMapping("/orderPay")
    public void orderPay() {

        //支付的业务逻辑
        //.................
        //传入我们需要的参数
        String orderId = "1";
        publisher.publishEvent(new PaySuccessEvent(this, orderId));
    }
 第二步  定义事件
//支付成功的事件
@Order(500)
public class PaySuccessEvent extends ApplicationEvent {
    private static final long serialVersionUID = 1L;

    private final String orderId;

    public PaySuccessEvent(Object source, String orderId) {
        super(source);
        this.orderId=orderId;
    }
    public String getOrderId() {
        return this.orderId;
    }
}
第三步  监听事件
    @Async
    @EventListener
    public void paySuccess(PaySuccessEvent event) {
       //获取参数
        String orderId = event.getOrderId();
        System.out.println("参数:"+orderId);

        System.out.println("我支付成功了");
    }
 第四步 测试

如有不足  希望各位指正,谢谢大家

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值