事件监听机制
- 事件的监听机制更多的用于异步通知以及监控和异常处理
Java提供了实现事件监听机制的两个基础类
java.util.EventObject: 自定义事件类型扩展java.util.EventListener: 事件的监听器扩展
自定义事件实现
Spring 容器内的事件监听机制
Spring的
ApplicationContext容器内部中的所有事件类型均继承自org.springframework.context.AppliationEvent,容器中的所有
监听器都实现org.springframework.context.ApplicationListener接口,并且以bean的形式注册在容器中。
一旦在容器内发布ApplicationEvent及其子类型的事件,注册到容器的ApplicationListener就会对这些事件进行处理。
ApplicationEvent: 继承自EventObjectContextClosedEvent: 表示容器在即将关闭时发布的事件类型ContextRefreshedEvent: 表示容器在初始化或者刷新的时候发布的事件类型ApplicationEventPublisher:ApplicationContext: 继承自ApplicationEventPublisher接口,提供void publishEvent(ApplicationEvent event)方法定义,可充当发布者角色ApplicationEventMulticaster:ApplicationContext将事件的发布以及监听器的管理工作委托给ApplicationEventMulticaster接口的实现类,
在容器启动时,会检查容器内是否存在名为applicationEventMulticaster的ApplicationEventMulticaster对象实例。如果有就使用其提供的实现,
没有就默认初始化一个SimpleApplicationEventMulticaster作为实现。
