1 /* 2 需求: 3 在不借助spring容器的情况下实现web项目的定时任务 4 */ 5 // 1. 创建一个执行定时任务的监听类 6 import java.util.Calendar; 7 import java.util.GregorianCalendar; 8 import java.util.Timer; 9 10 import javax.servlet.ServletContextEvent; 11 import javax.servlet.ServletContextListener; 12 13 import com.sgcc.service.PreDataService; 14 15 public class TimeListener implements ServletContextListener { 16 private static Timer timer; 17 private static PreDataService task = new PreDataService(); 18 19 public void contextDestroyed(ServletContextEvent arg0) { 20 if (timer != null) { 21 timer.cancel(); 22 } 23 } 24 25 public void contextInitialized(ServletContextEvent arg0) { 26 try { 27 timer = new Timer(true); 28 GregorianCalendar now = new GregorianCalendar(); 29 now.set(Calendar.HOUR_OF_DAY, 16);// 时 30 now.set(Calendar.MINUTE, 52); // 分 31 now.set(Calendar.SECOND, 0); // 秒 32 // task 要执行的对象,now.getTime() 系统当前时间 5000每隔5秒执行一次 如果是每天执行一次 设置为 1*1000*60*60*24 33 timer.schedule(task, now.getTime(),5000); 34 } catch (Exception e) { 35 e.printStackTrace(); 36 } 37 } 38 } 39 // 2. 创建执行任务的类 40 public class PreDataService extends TimerTask { 41 42 @Override 43 public void run() { 44 // 调用需要处定时处理的相关方法 45 //BaseDao baseDao = new BaseDao(); 46 //baseDao.saveCHELIANG(); 47 //baseDao.savePAICHE(); 48 } 49 50 } 51
1 <!-- 在web容器中添加一个listener 指定要执行的类即可 --> 2 <listener> 3 <listener-class>com.sgcc.timeUtil.TimeListener</listener-class> 4 </listener>
用到的类:java.util.TimerTask
原文:http://www.cnblogs.com/ejokovic/p/5166918.html