ApplicationEventPublisher异步处理事件

ApplicationEventPublisher异步处理事件

ApplicationEventPublisher是一个标准的观察者模式,好处我认为就是可以把业务分离开,也可以通过异步来发送Event,这样主流程就不用关系Event中具体啥时候做了啥事,主流程只发布个Event就可以了,也不会阻塞主流程的进行,比如记录日志操作,或者调用一个第三方接口这种有时间消耗的操作都可以交给Listener慢慢儿处理(有点像新建了个线程)。

1、创建Event集成ApplicationEvent

在这里插入图片描述
参数为Event中想要携带的数据,比如:
在这里插入图片描述
可以根据需要随意写

2、在需要发布Event的位置注入ApplicationEventPublisher

在这里插入图片描述

3、构造Event、参数、发布Event

在这里插入图片描述

4、创建监听类实现ApplicationListener接口,监听Event,泛型为刚刚发布的Event

在这里插入图片描述

5、实现onApplicationEvent方法处理业务

在这里插入图片描述

6、启动类开启异步处理

在这里插入图片描述

7、测试一下

项目中通过切面切入每个Controller,并且记录用户的操作日志,同时异步发送给Syslog服务器和记录在本地数据库,其中入库和发送Syslog交给Listener处理。

随便来个登陆操作:
在这里插入图片描述
切面中获取到了用户具体的操作、IP、balabala…
在这里插入图片描述
检查下数据库和syslog数据库有没有数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值