关于为什么要使用java.util.concurrent.ScheduledExecutorService代替Java.util.Timer/TimerTask,请参考:http://blog.csdn.net/qq_32786873/article/details/53024056
http://blog.csdn.net/qq_32786873/article/details/53032850
方式一:使用Spring的任务调度类ScheduledExecutorTask
1.建立一个Java类,并实现Runnable接口
package com.Solin.Timer;
import java.util.Date;
public class StartupTask implements Runnable{
@Override
public void run() {
System.out.println(new Date()+" ScheduledExecutorTask...");
}
}
2.Spring配置
<!-- 使用Spring的任务调度类ScheduledExecutorTask -->
<bean id="startupTask" class="com.Solin.Timer.StartupTask" />
<bean id="startupScheduledTask" class="org.springframework.scheduling.concurrent.ScheduledExecutorTask">
<!-- 程序启动后延迟1秒执行第一次任务 -->
<property name="delay" value="3000" />
<!-- 每次任务间隔0秒 0表示只执行一次,毫秒 -->
<property name="period" value="0" />
<!-- 配置主任务 -->
<property name="runnable" ref="startupTask" />
</bean>
<bean id="timerFactory" class="org.springframework.scheduling.concurrent.ScheduledExecutorFactoryBean">
<property name="scheduledExecutorTasks">
<list>
<ref bean="startupScheduledTask" />
<!-- 如有多任务,可以将任务bean放到list中 -->
</list>
</property>
</bean>
3.启动项目后,控制台会打印如下信息:
Thu Nov 03 18:36:24 CST 2016 ScheduledExecutorTask...
方式二:使用ScheduledExecutorService
参考:http://blog.csdn.net/qq_32786873/article/details/53033359