`

spring学习系列 -- 定时器一TimerTask

 
阅读更多

 

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();
		}
 
	}
}
 

 

参考文献:

分享到:
评论

相关推荐

    Spring定时器TimerTask用法

    **Spring定时器TimerTask用法** 在Java世界中,`java.util.Timer` 和 `java.util.TimerTask` 是用于实现定时任务的基本工具,但它们在多线程环境中的表现并不理想,容易引发内存泄漏。Spring框架提供了更强大的定时...

    spring + jdk TimerTask定时器

    虽然Spring不直接支持`TimerTask`的触发,但可以自定义一个`Trigger`实现来模拟`TimerTask`的行为。 ```java public class TimerTrigger implements Trigger { @Override public Date nextExecutionTime...

    spring定时器--代码解读

    Spring定时器是Spring框架中的一个强大特性,它允许开发者在应用程序中设置定时任务,以便在特定的时间间隔执行特定的操作。本篇文章将详细解读如何在Spring中实现定时任务,包括两种不同的实现方式:基于Timer的...

    spring定时器(内含TimerTask实现和Quartz实现两种方式)

    在Spring中,我们可以创建一个实现了`TimerTask`的类,并通过Spring的`ThreadPoolTaskScheduler`来调度这些任务。以下是一个简单的示例: ```java import java.util.TimerTask; @Service public class MyTimerTask...

    java 定时器 spring 定时器

    Java定时器和Spring定时器是Java开发中用于执行周期性任务的重要工具,它们在系统维护、数据同步、报告生成等场景中发挥着关键作用。本文将深入探讨这两个概念,以及如何在Spring框架中配置和使用定时器。 首先,...

    SPRING 定时器的使用

    ### Spring 定时器的使用 #### 背景与需求 在开发应用程序时,并非所有操作都需要用户主动触发。有些任务需要系统自动执行,比如数据同步、定期备份等。例如,电力行业的集抄系统(一种自动收集电表读数的系统)...

    小码农的代码(四)----------JAVA中Timer定时器与Spring定时任务

    `java.util.Timer`和`TimerTask`是Java标准库提供的基础定时器组件。`Timer`类允许我们创建一个计划任务,这些任务会在指定的延迟后或者定期执行。`TimerTask`是实际的任务实体,它继承自`Runnable`接口,你需要覆盖...

    Spring中配置定时器详解.doc

    ### 一、Spring定时器基本概念 Spring框架提供了多种方式来实现定时任务,包括基于`java.util.Timer`的`ScheduledTimerTask`和基于`java.util.concurrent.ScheduledExecutorService`的`@Scheduled`注解。本文主要...

    spring定时器简单的demo

    这个"spring定时器简单的demo"应该包含了一个使用Spring Task实现简单定时任务的例子。 首先,Spring Task的配置通常在`applicationContext.xml`文件中进行。在这个配置文件中,我们需要启用Spring的Task执行器,这...

    Spring使用timer定时器-能精确几点运行定时任务

    Spring提供了多种方式来实现定时任务,其中之一就是使用`Timer`。`Timer`接口源自Java标准库,但在Spring中,我们可以结合它来创建更加灵活的定时任务。本教程将详细介绍如何在Spring中使用`Timer`来实现能精确到几...

    定时器(spring管理),但是不是spring的定时器

    在网上找了很多定时器的实现,主要有2种:一是继承java.util.TimerTask,一种是使用Quartz,我开始选用了Quartz,但是Common-collection.jar出了问题,后来就都不用了,自己写了一个普通类,用spring的AOP对方法进行拦截,...

    spring的定时器设置

    在本主题"spring的定时器设置"中,我们将深入探讨Spring如何配置定时任务,主要关注2.x和3.x版本的区别。 一、Spring 2.x 定时任务 在Spring 2.x中,定时任务主要是通过`org.springframework.scheduling.timer`包...

    spring实现定时器

    通过以上分析,我们了解了如何在Spring框架中实现一个简单的定时器。这个示例展示了Spring框架的强大之处,它允许开发者以声明式的方式轻松地实现定时任务。此外,Spring还提供了许多其他配置选项,使得定时任务的...

    spring定时器的包和配置文件

    Spring定时器基于Java的`java.util.Timer`和`java.util.TimerTask`,但更进一步,它支持Quartz和SimpleScheduler这两种强大的定时任务库。Quartz是一个开源的作业调度框架,而SimpleScheduler则内置在Spring中,适用...

    23-Listener-源代码.rar

    案例-使用监听器完成定时生日祝福、,一、监听器Listener 二、邮箱服务器。 1.什么是监听器? 2.监听器有哪些? 3.监听三大域对象的创建与销毁的监听器 ...c、任务调度----定时器----Timer/TimerTask

    Spring定时器实例(Java的Timer类和OpenSymphony的Quartz)

    Spring两种定时器实例配置:Java的TimerTask类和OpenSymphony的Quartz。包含5种配置方式:timer普通定时器、timer特定方法定时器、quartz简单定时器、quartz精确定时器、quartz特定方法定时器。简单实用,一看就会。

    spring定时器3.0之前和3.0之后以及相应的项目实例

    要使用Spring的定时器功能,首先需要配置一个`TimerTask`实现,然后在Spring的XML配置文件中声明并配置定时任务,例如: ```xml &lt;!-- 这里可以设置Task的属性 --&gt; &lt;bean id="timerTaskScheduler" class="org....

    java定时器结合spring

    Java定时器结合Spring框架可以创建灵活且可扩展的定时任务,这种技术在许多企业级应用中非常常见,用于执行周期性的后台任务,如数据清理、报告生成或服务调用等。下面将详细介绍如何在Spring中集成Java定时器,并...

    spring+jdk定时器

    Spring框架作为Java领域广泛使用的轻量级框架,提供了与JDK定时器结合以及集成第三方库如Quartz的方式,来实现定时任务。本篇文章将详细探讨“spring+jdk定时器”的实现方式。 首先,我们来看JDK自带的定时器——`...

    spring配置定时器

    ### 一、Spring定时器概述 #### 1.1 定时器简介 Spring框架提供了多种实现定时任务的方式,包括但不限于`@Scheduled`注解、`ScheduledExecutorService`以及`Timer`类。其中,基于`Timer`类的定时任务配置较为传统但...

Global site tag (gtag.js) - Google Analytics