Spring Boot Event 观察者模式,轻松带你实现业务解耦!

互联网架构师

共 1220字,需浏览 3分钟

 ·

2022-07-30 12:31

点击关注公众号:互联网架构师,后台回复 2T获取2TB学习资源!

上一篇:Alibaba开源内网高并发编程手册.pdf

写在最前

实际业务开发过程中,业务逻辑可能非常复杂,核心业务 + N个子业务。如果都放到一块儿去做,代码可能会很长,耦合度不断攀升,维护起来也麻烦,甚至头疼。还有一些业务场景不需要在一次请求中同步完成,比如邮件发送、短信发送等。

MQ 确实可以解决这个问题,但 MQ 重啊,非必要不提升架构复杂度。针对这些问题,我们了解一下 Spring Event。

Spring Event 同步使用

Spring Event(Application Event)其实就是一个观察者设计模式,一个 Bean 处理完成任务后希望通知其它 Bean 或者说一个 Bean 想观察监听另一个Bean 的行为。

1.自定义事件

定义事件,继承 ApplicationEvent 的类成为一个事件类

2.定义监听器

监听并处理事件,实现 ApplicationListener 接口或者使用 @EventListener 注解

3.定义发布者

发布事件,通过 ApplicationEventPublisher 发布事件

4.单测执行

执行结果如下:

Spring Event 异步使用

有些业务场景不需要在一次请求中同步完成,比如邮件发送、短信发送等。

1.自定义事件

2.定义监听器

推荐使用 @EventListener 注解

3.定义发布者

4.单测执行(同步)

执行结果如下:

5.开启异步

启动类增加 @EnableAsync 注解

Listener 类需要开启异步的方法增加 @Async 注解

6.单测执行(异步)

发送短信的线程显示 task-1,主线程结束后(总耗时:(2017)毫秒)控制台停止打印了

来源:blog.csdn.net/csp732171109/article/details/124377254

-End-

最后,关注公众号互联网架构师,在后台回复:2T,可以获取我整理的 Java 系列面试题和答案,非常齐全


正文结束


推荐阅读 ↓↓↓

1.全新 IDEA 2022.2 正式发布,新特性真香!

2.从零开始搭建创业公司后台技术栈

3.程序员一般可以从什么平台接私活?

4.Spring中毒太深,离开Spring我连最基本的CRUD都不会写了...

5.为什么国内 996 干不过国外的 955呢?

6.中国的铁路订票系统在世界上属于什么水平?                        

7.15张图看懂瞎忙和高效的区别!

浏览 44
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报