1.Servlet容器监听:
javax.servlet.ServletContextEvent容器事件类
javax.servlet.ServletContextListener容器事件监听接口,该接口有两个方法:contextDestroyed(ServletContextEvent arg0) 容器停止时触发;contextInitialized(ServletContextEvent arg0) 容器初始化是触发。
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import kernel.TaskTimer;
/**
* 监听服务的启动和停止
*/
public class OpenServeLinster implements ServletContextListener {
/**
* 服务停止时调用
*/
public void contextDestroyed(ServletContextEvent arg0) {
}
/**
* 服务启动时调用
*/
public void contextInitialized(ServletContextEvent arg0) {
System.out.println("初始化。。。。。");
TaskTimer.startTimer();
}
}
2.Spring 容器监听:
org.springframework.context.ApplicationEvent事件类,必须有ApplictionContext发布
org.springframework.context.event.ContextRefreshedEvent事件类,容器初始化或刷新时,触发该事件。
org.springframework.context.event.ContextClosedEvent事件类,容器关闭时,触发该事件。
org.springframework.context.ApplicationListener事件监听接口,可由容器中的任何监听器类Bean实现
当容器内发生了任何事件,都被监听,触发onApplicationEvent方法。
import org.springframework.context.ApplicationEvent;
public class TestEvent extends ApplicationEvent {
private String adress;
private String text;
public TestEvent(Object arg0) {
super(arg0);
}
private static final long serialVersionUID = 1L;
public TestEvent(Object arg0,String adress,String text) {
super(arg0);
this.adress = adress;
this.text = text;
}
}
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
/**
* Spring 容器事件监听器。<br>
* 当容器内发生了任何事件,都被监听,触发onApplicationEvent方法。
* @author yemin
*
*/
public class TestListener implements ApplicationListener {
public void onApplicationEvent(ApplicationEvent arg0) {
//判断事件是不是有TestEvent对象引起的
if(arg0 instanceof TestEvent){
}else{
}
}
}