倾听事件

在Spring应用程序执行期间,ApplicationContext会发布一连串的事件,所有的事件都是抽象类别org.springframework.context.ApplicationEvent的子类别,像是:

  • ContextClosedEvent

在ApplicationContext关闭时发布事件。

  • ContextRefreshedEvent

在ApplicationContext初始或Refresh时发布事件。

  • RequestHandledEvent

在Web应用程序中,当请求被处理时,ApplicationContext会发布此事件。

如果您对这些事件有兴趣,则可以实现org.springframework.context.ApplicationListener接口,并在定义文件 中定义实现该接口的一个Bean实例,ApplicationContext会在ApplicationEvent发布时通知这些Bean实例。

在Spring中,实现ApplicationListener接口的实例为

  • ConsoleListener

仅在Debug时使用,会在文字模式下显示登录(Log)ApplicationContext的相关讯息。

  • PerformanceMonitorListener

在Web应用程序中,搭配WebApplicationContext使用,登录请求的响应时间。

例如您可以在Bean定义档中这么撰写:

  • beans-config.xml
   <?xml version="1.0" encoding="UTF-8"?> 
   <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" 
     "http://www.springframework.org/dtd/spring-beans.dtd"> 
   
   <beans>  
       <bean id="listener" 
             class="org.springframework.context.event.ConsoleListener"/>
   
       ....
   </beans>

则运行Spring应用程序时,将可以在ApplicationEvent相关事件发布时,于文字模式下观察到登录讯息。