Spring 事件框架
Spring
事件框架包含三个部件:
- 事件:
ApplicationEvent
- 事件监听器:
ApplicationListener
,对监听到的事件进行处理 - 事件发布:
ApplicationEventPublisher
,ApplicationContext
继承了该接口,在ApplicationContext
的抽象实现类AbstractApplicationContext
中做了实现
Spring 事件原理
Spring提供的事件类型
ContextStartedEvent
:ApplicationContext
启动后触发的事件;ContextStoppedEvent
:ApplicationContext
停止后触发的事件;ContextRefreshedEvent
:ApplicationContext
初始化或刷新完成后触发的事件;(容器初始化完成后调用)ContextClosedEvent
:ApplicationContext
关闭后触发的事件;(如web容器关闭时自动会触发spring容器的关闭)
事件发布者
ApplicationContext
接口继承了ApplicationEventPublisher
,并在AbstractApplicationContext
实现了具体代码,实际执行是委托给ApplicationEventMulticaster
:
|
|
常用的ApplicationContext
都继承自AbstractApplicationContext
,如ClassPathXmlApplicationContext
、XmlWebApplicationContext
等,自动拥有这个功能