ServletContextListener在服务器启动的时候就会执行,这时候可以在里面写一些定时执行任务
这里进行模拟银行计息
首先创建一个类实现ServletContextListener接口,在contextInitialized()方法中写入想要执行的代码
第二进行web.xml配置监听器
<listener>
<listener-class>com.raylu.listener.MyContextListener</listener-class>
</listener>
这里模拟定时执行计息的:
package com.raylu.listener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
* 使用ServletContextListener完成定时任务
* 这里模拟银行定时计息任务
* @author RayLu
*
*/
public class MyContextListener implements ServletContextListener{
@Override
public void contextInitialized(ServletContextEvent sce) {
//设置一个计时器模拟银行计息工作
Timer timer = new Timer();
String date="2017-06-05 21:39:00";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 = null;
try {
date1 = format.parse(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
timer.scheduleAtFixedRate(new TimerTask(){
@Override
public void run() {
// System.out.println("开始算利息!!"+format.format(new Date()).toString());
}
}, date1, 3000);
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
// TODO Auto-generated method stub
}
}