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用法** 在Java世界中,`java.util.Timer` 和 `java.util.TimerTask` 是用于实现定时任务的基本工具,但它们在多线程环境中的表现并不理想,容易引发内存泄漏。Spring框架提供了更强大的定时...
虽然Spring不直接支持`TimerTask`的触发,但可以自定义一个`Trigger`实现来模拟`TimerTask`的行为。 ```java public class TimerTrigger implements Trigger { @Override public Date nextExecutionTime...
Spring定时器是Spring框架中的一个强大特性,它允许开发者在应用程序中设置定时任务,以便在特定的时间间隔执行特定的操作。本篇文章将详细解读如何在Spring中实现定时任务,包括两种不同的实现方式:基于Timer的...
在Spring中,我们可以创建一个实现了`TimerTask`的类,并通过Spring的`ThreadPoolTaskScheduler`来调度这些任务。以下是一个简单的示例: ```java import java.util.TimerTask; @Service public class MyTimerTask...
Java定时器和Spring定时器是Java开发中用于执行周期性任务的重要工具,它们在系统维护、数据同步、报告生成等场景中发挥着关键作用。本文将深入探讨这两个概念,以及如何在Spring框架中配置和使用定时器。 首先,...
### Spring 定时器的使用 #### 背景与需求 在开发应用程序时,并非所有操作都需要用户主动触发。有些任务需要系统自动执行,比如数据同步、定期备份等。例如,电力行业的集抄系统(一种自动收集电表读数的系统)...
`java.util.Timer`和`TimerTask`是Java标准库提供的基础定时器组件。`Timer`类允许我们创建一个计划任务,这些任务会在指定的延迟后或者定期执行。`TimerTask`是实际的任务实体,它继承自`Runnable`接口,你需要覆盖...
### 一、Spring定时器基本概念 Spring框架提供了多种方式来实现定时任务,包括基于`java.util.Timer`的`ScheduledTimerTask`和基于`java.util.concurrent.ScheduledExecutorService`的`@Scheduled`注解。本文主要...
这个"spring定时器简单的demo"应该包含了一个使用Spring Task实现简单定时任务的例子。 首先,Spring Task的配置通常在`applicationContext.xml`文件中进行。在这个配置文件中,我们需要启用Spring的Task执行器,这...
Spring提供了多种方式来实现定时任务,其中之一就是使用`Timer`。`Timer`接口源自Java标准库,但在Spring中,我们可以结合它来创建更加灵活的定时任务。本教程将详细介绍如何在Spring中使用`Timer`来实现能精确到几...
在网上找了很多定时器的实现,主要有2种:一是继承java.util.TimerTask,一种是使用Quartz,我开始选用了Quartz,但是Common-collection.jar出了问题,后来就都不用了,自己写了一个普通类,用spring的AOP对方法进行拦截,...
在本主题"spring的定时器设置"中,我们将深入探讨Spring如何配置定时任务,主要关注2.x和3.x版本的区别。 一、Spring 2.x 定时任务 在Spring 2.x中,定时任务主要是通过`org.springframework.scheduling.timer`包...
通过以上分析,我们了解了如何在Spring框架中实现一个简单的定时器。这个示例展示了Spring框架的强大之处,它允许开发者以声明式的方式轻松地实现定时任务。此外,Spring还提供了许多其他配置选项,使得定时任务的...
Spring定时器基于Java的`java.util.Timer`和`java.util.TimerTask`,但更进一步,它支持Quartz和SimpleScheduler这两种强大的定时任务库。Quartz是一个开源的作业调度框架,而SimpleScheduler则内置在Spring中,适用...
案例-使用监听器完成定时生日祝福、,一、监听器Listener 二、邮箱服务器。 1.什么是监听器? 2.监听器有哪些? 3.监听三大域对象的创建与销毁的监听器 ...c、任务调度----定时器----Timer/TimerTask
Spring两种定时器实例配置:Java的TimerTask类和OpenSymphony的Quartz。包含5种配置方式:timer普通定时器、timer特定方法定时器、quartz简单定时器、quartz精确定时器、quartz特定方法定时器。简单实用,一看就会。
要使用Spring的定时器功能,首先需要配置一个`TimerTask`实现,然后在Spring的XML配置文件中声明并配置定时任务,例如: ```xml <!-- 这里可以设置Task的属性 --> <bean id="timerTaskScheduler" class="org....
Java定时器结合Spring框架可以创建灵活且可扩展的定时任务,这种技术在许多企业级应用中非常常见,用于执行周期性的后台任务,如数据清理、报告生成或服务调用等。下面将详细介绍如何在Spring中集成Java定时器,并...
Spring框架作为Java领域广泛使用的轻量级框架,提供了与JDK定时器结合以及集成第三方库如Quartz的方式,来实现定时任务。本篇文章将详细探讨“spring+jdk定时器”的实现方式。 首先,我们来看JDK自带的定时器——`...
### 一、Spring定时器概述 #### 1.1 定时器简介 Spring框架提供了多种实现定时任务的方式,包括但不限于`@Scheduled`注解、`ScheduledExecutorService`以及`Timer`类。其中,基于`Timer`类的定时任务配置较为传统但...