spring定时器一般有两种:
TimerTask、Quartz。本节只讲TimerTask
需要的包:
aopalliance-1.0.jar
commons-logging-1.1.1.jar
spring-aop-3.0.6.RELEASE.jar
spring-asm-3.0.6.RELEASE.jar
spring-beans-3.0.6.RELEASE.jar
spring-context-3.0.6.RELEASE.jar
spring-core-3.0.6.RELEASE.jar
spring-expression-3.0.6.RELEASE.jar
TimerTask实例:同时启动2个定时器,执行任务
定时执行任务的类继承TimerTask:
public class EmailReportTask extends TimerTask{
@Override
public void run() {
System.out.println(" EmailReportTask Run... ");
}
}
public class PageReportTask extends TimerTask{
@Override
public void run() {
System.out.println("PageReportTask Run...");
}
}
spring的配置文件:
<!-- Bean -->
<bean id="emailReportTask" class="com.hry.spring.timertask.EmailReportTask" />
<bean id="pageReportTask" class="com.hry.spring.timertask.PageReportTask" />
<!-- ScheduledTimerTask设置定时器属性 : period=定时器周期;delay=延迟多久启动
86400000代表24个小时;timerTask=执行定时任务的类对象 -->
<bean id="emailReportScheduleReportTask"
class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="timerTask" ref="emailReportTask" />
<property name="period" value="2000" />
<property name="delay" value="1000" />
</bean>
<bean id="pageReportScheduleReportTask"
class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="timerTask" ref="pageReportTask" />
<property name="period" value="2000" />
</bean>
<!-- Spring的TimerFactoryBean负责启动定时任务;
scheduledTimerTasks = 需要启动的定时器任务的列表-->
<bean class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref bean="emailReportScheduleReportTask"/>
<ref bean="pageReportScheduleReportTask"/>
</list>
</property>
</bean>
测试代码:
public class TestBaseService {
protected ApplicationContext ctx = new ClassPathXmlApplicationContext(
new String[]{
"classpath:resource/spring.xml"
}
);
@Test
public void timer(){
try{
// 这个是主线程,如果结束了,则定时器也会结束,所有设置时间要长
Thread.sleep(36 * 1000);
}catch(Exception e){
e.printStackTrace();
}
}
}
参考文献:
分享到:
相关推荐
NULL 博文链接:https://zhujianpengzha.iteye.com/blog/1714713
spring + jdk TimerTask定时器 完整可运行
spring 定时器 内含TimerTask实现和Quartz实现两种方式
在网上找了很多定时器的实现,主要有2种:一是继承java.util.TimerTask,一种是使用Quartz,我开始选用了Quartz,但是Common-collection.jar出了问题,后来就都不用了,自己写了一个普通类,用spring的AOP对方法进行拦截,...
案例-使用监听器完成定时生日祝福、,一、监听器Listener 二、邮箱服务器。 1.什么是监听器? 2.监听器有哪些? 3.监听三大域对象的创建与销毁的监听器 ...c、任务调度----定时器----Timer/TimerTask
Spring两种定时器实例配置:Java的TimerTask类和OpenSymphony的Quartz。包含5种配置方式:timer普通定时器、timer特定方法定时器、quartz简单定时器、quartz精确定时器、quartz特定方法定时器。简单实用,一看就会。
定时器(用spring管理。在项目中使用到了JFreeChart每天都会产生很多统计图,如果不及时清理,服务器空间很快就会不够,所以要用到... 在网上找了很多定时器的实现,主要有2种_一是继承java.util.TimerTask,一种是使用Quartz
Timer与TimerTask编写的定时器(在spring+struts2+mybatis框架下)
让应用程序定时执行某个任务. 从Java 1.3开始,Java SDK就通过java.util.Timer类提供了基本的调度功能。这个类允许你调度一个任务(通过java.util.TimerTask子类定义)按任意周期运行。
两种方式实现定时执行任务操作,通过spring中集成的timerTask,包含源码及用到的jar包