什么是Spring事件监听机制
Spring的ApplicaitonContext
可以发布事件和注册相应的事件监听器。
事件监听和发布的三个概念
1、事件源:事件的生产者,任何一个event都有一个事件源。
2、事件发布器:它是事件和事件监听器的一个桥梁,负责把事件通知到事件监听器。
3、事件监听器注册表:用于存储事件监听器。
事件类(ApplicationEvent)
ApplicationEvent继承自EventObject,其包含一个构造函数ApplicationEvent(Object source),这个source就是事件源。
它有两个子类:
1、ApplicationContextEvent
:容器事件,事件源是ApplicationContext,其提供了四个子类,分别表示启动(Context
StartedEvent)、刷新(ContextRefreshedEvent)、停止(ContextStopedEvent)、关闭(ContextClosedEvent)事件。
2、RequestHandlerEvent
:Web应用事件,当一个请求被处理之后会产生该事件。
事件监听接口(ApplicationListener)
所有的事件监听器都需要实现该接口,该接口定义了一个方法onApplicationEvent(E event)
,这个方法接收事件对象,在这个方法里编写对应事件的处理逻辑。
简单的事件监听案例
通过一个简单的Demo来介绍一下Spring事件监听机制。
1、pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope