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等,自动拥有这个功能