(1)ContextRefreshedEvent:当ApplicationContext初始化或者刷新时触发该事件
(2)ContextClosedEvent:ApplicationContext被关闭时触发该事件.容器被关闭时,其管理的所有单例Bean都被销毁
(3)RequestHandleEvent:在Web应用中,当一个Http请求结束时触发该事件
(4)ContextStartedEvent:当容器调用start()方法时触发
(5)ContextStopEvent:当容器调用stop()方法时触发
编写一个监听器继承ApplicationListener
public class ApplicationEventListener implements ApplicationListener{ @Override public void onApplicationEvent(ApplicationEvent event) { if(event instanceof ContextRefreshedEvent){ System.out.println(event.getClass().getSimpleName()+"事件已经发生"); }else if(event instanceof ContextClosedEvent){ System.out.println(event.getClass().getSimpleName()+"事件已经发生"); }else if(event instanceof ContextStartedEvent){ System.out.println(event.getClass().getSimpleName()+"事件已经发生"); }else{ System.out.println(event.getClass().getName()+"事件已经发生"); } } }
在配置文件中配置监听器
<bean id="ApplicationContextListener" class="application.ApplicationEventListener"></bean>
public static void main(String[] args) { AbstractApplicationContext ac=new ClassPathXmlApplicationContext("config/applicationContext.xml"); ac.start(); ac.close(); ac.stop(); }