实现spring定时器方式1:Java的Timer类

本文详细介绍了如何利用Spring框架中的Timer和ScheduledTimerTask类来实现定时任务的配置与执行,包括继承TimerTask类实现定时任务的具体步骤以及如何在Spring应用上下文中进行配置。文章通过实例展示了从初始化到配置再到启动定时任务的全过程,并验证了定时任务的正确执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[b]spring定时器实现方式1:Java的Timer类[/b]
[i]1.继承java.util.TimerTask类实现run方法[/i]
package com.tgwoo.ctspmt.test;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask;
public class EmailReportTask extends TimerTask {
@Override
public void run() {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(date) + "{*****继承TimerTask类,实现run方法,此处定时需要处理的业务*****}");
//处理相关业务
}
}

(如下配置到applicationContext.xml中)
[i]2.配置需要运行的类[/i]
<bean id="reportTimerTask" class="com.tgwoo.ctspmt.test.EmailReportTask"></bean>

[i]3.配置Spring定时器[/i]
<bean id="scheduleReportTask" class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="timerTask" ref="reportTimerTask"></property>
<property name="period"><value>15000</value></property>
<property name="delay"><value>10000</value></property>
</bean>
注:timerTask属性告诉ScheduledTimerTask运行哪个bean, period属性每间隔(15000毫秒)运行一次, delay属性延迟启动(10000毫秒)Spring定时器

[i]4.启动Spring定时器 [/i]
<bean id="scheduleReportFactory" class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list><ref bean="scheduleReportTask" /></list>
</property>
</bean>
注:scheduledTimerTasks里显示一个需要启动的定时器任务的列表。

[i]5.启动tomcat6服务后,Timer运行正常[/i](在加载spring成功后,延迟10秒,每隔15秒运行定时器一次)
[2011-12-22 10:18:37,861][INFO][org.springframework.web.servlet.DispatcherServlet][4096]{FrameworkServlet 'springMVC': initialization started}
[2011-12-22 10:18:37,861][INFO][org.springframework.web.context.support.XmlWebApplicationContext][4096]{Refreshing WebApplicationContext for namespace 'springMVC-servlet': startup date [Thu Dec 22 10:18:37 CST 2011]; parent: Root WebApplicationContext}
[2011-12-22 10:18:37,861][INFO][org.springframework.beans.factory.xml.XmlBeanDefinitionReader][4096]{Loading XML bean definitions from ServletContext resource [/WEB-INF/springMVC-servlet.xml]}
.........
.........
2011-12-22 10:18:39 org.apache.catalina.startup.Catalina start
信息: Server startup in 6753 ms
2011-12-22 10:18:47{*****继承TimerTask类,实现run方法,此处定时需要处理的业务*****}
2011-12-22 10:19:02{*****继承TimerTask类,实现run方法,此处定时需要处理的业务*****}
2011-12-22 10:19:17{*****继承TimerTask类,实现run方法,此处定时需要处理的业务*****}
2011-12-22 10:19:32{*****继承TimerTask类,实现run方法,此处定时需要处理的业务*****}
2011-12-22 10:19:47{*****继承TimerTask类,实现run方法,此处定时需要处理的业务*****}
2011-12-22 10:20:02{*****继承TimerTask类,实现run方法,此处定时需要处理的业务*****}
..........
.......... :arrow:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值