首页 > 技术文章 > Spring框架中不同类型的事件

yangwei20160911 原文

ContextRefreshedEvent,ApplicationContext初始化或者被更新是会触发,ConfigurableApplicationContext接口中的refresh()方法被调用会触发

ContextStartedEvent,,ConfigurableApplicationContext接口中的start()方法被调用会触发

ContextStoppededEvent,,ConfigurableApplicationContext接口中的stop()方法被调用会触发

ContextClosedEvent,AppliactionContext被关闭时触发该事件,所有容器管理的单例bean被销毁。

RequestHandledEvent,当一个http请求结束时触发该事件

如果一个bean实现了ApplicationListener接口,当一个ApplicationEvent被发布后,遍历所有监听器,对于每一个监听器来说其实都可以获取到监听事件,但是是否进行处理则由事件监听器来决定,如果要处理,使用onApplicationEvent()方法来进行监听器的处理

  自定义监听事件,需要ApplicationEvent接口,ApplicationContext使用publishEvent()方法来发布事件。

推荐阅读