一:实现Runnable接口写线程类
public class ScanZipAndOperatorTask implements Runnable {
public void run() {
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
int i=1;
while(true){
try {
logger.info("第"+i+"次执行操作!!!");
System.out.println("当前时间:"+format.format(new Date()));
scanZipAndOperator();
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
i++;
}
}
public void scanZipAndOperator() {}
}
二:写一监听器项目加载监听是启动线程
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import task.ScanZipAndOperatorTask;
/**
* 项目启动即触发定时线程
*/
public class TimingStartThreadListener implements ServletContextListener {
Log logger=LogFactory.getLog("System");
@Override
public void contextDestroyed(ServletContextEvent arg0) {
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
logger.info("定时线程启动!每5秒执行一次。。。");
new Thread(new ScanZipAndOperatorTask()).start();
}
}
三:在web.xml中配置,项目加载执行监听器类
<!-- 监听定时启动线程 -->
<listener>
<listener-class>listener.TimingStartThreadListener</listener-class>
</listener>