Spring的两种定时任务实现
方法一 利用Timer开发定时任务
分两步:
第1步 创建定时任务类;
第2步 运行定时任务。
????????? 分两种运行方式:1)程序直接启动;
????????????????????????????????? 2)web监听方式。
?
1)创建定时任务类示例代码如下:
package com.gc.action;import java.util.TimerTask;class MainTask extends TimerTask{public void run() {System.out.println("Hello World!");}}
?2)运行定时任务。
?????? (1)程序直接启动方式。
package com.gc.action;import java.util.Timer;class Main {public static void main(String[] args) {System.out.println("1Hello World!");Timer timer = new Timer();timer.schedule(new MainTask(),0,1*1000);System.out.println("2Hello World!");}}
?代码说明:timer.schedule()方法参数说明——timer.schedule(定时任务类, 首次启动时间, 间隔时间).这样每过一个间隔时间就运行一次定时任务类代码。
?
运行结果:
D:\java\editplus>java com.gc.action.Main1Hello World!2Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!……
?
? (2)web监听方式启动。
?
package com.gc.action;import java.util.Timer;class BindLoader implements ServletContextListener{private Timer timer = null;//监听器初始化时执行事件public void contextInitialized(ServletContextEvent sce){timer = new Timer();timer.schedule(new MainTask(),0, 1*1000);System.out.println("Hello World!");}//监听器停止时执行事件public void contextDestroyed(ServletContextEvent sce){timer.cancel();}}
代码说明:监听器必须实现javax.servlet.ServletContextListener接口。
另外需要在web.xml中配置监听类。
<listener> <listener-class>com.gc.action.BindLoader</listener-class></listener>
?
方法二、Quartz方法实现定时任务。
?
?
?
?
?
?