## 一、ApplicationListener概述
>接下来我们首先来看看ApplicationListener的基本概念、一些内置的事件以及使用场景。
## 二、ApplicationListener是什么?
>ApplicationListener可以监听某个事件的event,触发时机可以穿插在业务方法执行过程中,用户可以自定义某个业务事件。但是spring内部也有一些内置事件,这种事件,可以穿插在启动调用中。我们也可以利用这个特性,来自己做一些内置事件的监听器来达到和前面一些触发点大致相同的事情。
## 三、内置事件
>Spring内部也有一些内置事件,这种事件,可以穿插在启动调用中。我们也可以利用这个特性,来自己做一些内置事件的监听器来达到和前面一些触发点大致相同的事情。
**接下来罗列下spring主要的内置事件:**
>(1)ContextRefreshedEvent
- ApplicationContext 被初始化或刷新时,该事件被发布。这也可以在 ConfigurableApplicationContext接口中使用refresh() 方法来发生。此处的初始化是指:所有的Bean被成功装载,后处理Bean被检测并激活,所有Singleton Bean 被预实例化,ApplicationContext容器已就绪可用。
>(2)ContextStartedEvent
- 当使用ConfigurableApplicationContext (ApplicationContext子接口)接口中的 start() 方法启动 ApplicationContext 时,该事件被发布。你可以调查你的数据库,或者你可以在接受到这个事件后重启任何停止的应用程序。
>(3)ContextStoppedEvent
- 当使用ConfigurableApplicationContext 接口中的 stop() 停止 ApplicationContext 时,发布这个事件。你可以在接受到这个事件后做必要的清理的工作
>(4)ContextClosedEvent
- 当使用ConfigurableApplicationContext接口中的 close()方法关闭 ApplicationContext 时,该事件被发布。一个已关闭的上下文到达生命周期末端;它不能被刷新或重启
>(5)RequestHandledEvent
- 这是一个web-specific 事件,告诉所有 bean HTTP 请求已经被服务。只能应用于使用DispatcherServlet的Web应用。在使用Spring作为前端的MVC控制器时,当Spring处理用户请求结束后,系统会自动触发该事件
## 四、使用场景
- 发布订阅/观察者模型,实现业务之间的解耦。
- 比如新增用户完成需要发短信、记录日志等,这些逻辑堆在新增方法的最后面实在不太合理,而且不易复用。
- 对解耦代码有很大的帮助,比如多种业务场景做完都要插入通知消息,每个场景代码在做完业务逻辑,直接发布一个对应的事件,让监听器去处理监听逻辑即可,而不需要每个场景都加这一段代码。
本地测试地址:`http://localhost:8080/order/create`
没有合适的资源?快使用搜索试试~ 我知道了~
SpringBoot ApplicationListener观察者模式示例
共10个文件
java:6个
xml:2个
properties:1个
需积分: 0 2 下载量 128 浏览量
2023-08-31
16:34:56
上传
评论
收藏 9KB ZIP 举报
温馨提示
博客地址:https://blog.csdn.net/u011974797/article/details/132605189 1. 发布订阅/观察者模型,实现业务之间的解耦。 2.比如新增用户完成需要发短信、记录日志等,这些逻辑堆在新增方法的最后面实在不太合理,而且不易复用。 3.对解耦代码有很大的帮助,比如多种业务场景做完都要插入通知消息,每个场景代码在做完业务逻辑,直接发布一个对应的事件,让监听器去处理监听逻辑即可,而不需要每个场景都加这一段代码。
资源推荐
资源详情
资源评论
收起资源包目录
spring-boot-listener.zip (10个子文件)
spring-boot-listener
pom.xml 2KB
src
main
resources
application.properties 103B
logback-spring.xml 3KB
java
com
test
ApplicationMain.java 345B
controller
OrderController.java 708B
service
SmsListener.java 706B
OrderService.java 1KB
WechatListener.java 712B
OrderCreateEvent.java 571B
README.md 3KB
共 10 条
- 1
资源评论
涛哥是个大帅比
- 粉丝: 402
- 资源: 33
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功