spring事件发布

最近一个需求,接口监控异常,需要进行一连串逻辑处理,又新加需要给运维人员发短信,异步处理,不能影响源代码逻辑,因此用到事件发布器
在事件驱动中有三个比较重要的组件:
Event 发布的事件对象
EventPublisher:事件发布对象
EventListener:事件监听对象
1.定义一个事件发布类型,


/**
 * 自定义一个事件对象,继承ApplicationEvent
 *
 * */
public class TestEvent extends ApplicationEvent {
    //
    public TestEvent(Object source) {
        super(source);
    }
}

2.定义事件发送器

/**
 * 自定义事件发布者
 */

@Component
public class TestEventPublisher implements ApplicationEventPublisherAware {
    private ApplicationEventPublisher publisher;

    @Override
    public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
        this.publisher = applicationEventPublisher;
    }

    // 发布的事件内容 Object 可以是任意对象
    // 业务直接调查此方法就可以发送事件,然后在监听器就可以获取
    // 发布的事件obj对象,进行后续业务处理
    public void sendEvent(Object obj) {
        // 发布事件
        publisher.publishEvent(new TestEvent(obj));
    }
}

3.事件监听器

/**
 * 自定义监听事件,监听的时间就是发布的事件
 * */
@Component
public class TestLister implements ApplicationListener<TestEvent> {
    @Override
    public void onApplicationEvent(TestEvent event) {
        // 获取事件的内容
        Object source = event.getSource();

    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值