Spring Boot 3.x特性-事件与监听
文章目录
-
- 1.Spring事件与监听
- 2.Spring Boot 事件与监听
- 3.自已定义事件与监听
-
- 1.自定义事件(继承
ApplicationEvent) - 2.发布事件
- 3.事件监听
- 4.注册监听器
- 5.测试
- 1.自定义事件(继承
- 4.基于注解的事件监听器
- 5.异步监听
- 6.监听器顺序
- 7.通用的事件
1.Spring事件与监听
ApplicationContext中的事件处理是通过ApplicationEvent类和ApplicationListener接口提供 的。
如果实现ApplicationListener接口的bean加载到上下文中。每次ApplicationEvent事件被发布到ApplicationContext,该bean会接受到通知。实际上这是标准的Observer设计模式。
下表描述了Spring提供的标准事件:
| ContextRefreshedEvent | 当ApplicationContext被初始化或刷新时发布(例如,通过使用ConfigurableApplicationContext接口上的refresh()方法)。在这里,“初始化”意味着加载了所有bean,检测并激活了后处理器bean,预实例化了单例,ApplicationContext对象已准备好使用。只要上下文没有关闭,就可以多次触发刷新,前提是所选的ApplicationContext实际上支持这样的“热”刷新。例如,XmlWebApplicationContext支持热刷新,但是GenericApplicationContext不支持 |
| ContextStartedEvent | 通过使用ConfigurableApplicationContext接口上的start()方法,在ApplicationContext启动时发布。在这里,“started”意味着所有生命周期bean都接收一个显式的开始信号。通常,此信号用于在显式停止后重新启动bean,但也可用于启动未配置为自动启动的组件(例如,在初始化时尚未启动的组件)。 |
| ContextStoppedEvent | 通过使用ConfigurableApplicationContext接口上的stop()方法,在ApplicationContext停止时发布。在这里,“stopped”意味着所有生命周期bean都接收到一个显式的停止信号。已停止的上下文可以通过start()调用重新启动。 |