Spring3中加强了注解的使用,其中计划任务也得到了增强,现在创建一个计划任务只需要两步就完成了:
创建一个Java类,添加一个无参无返回值的方法,在方法上用@Scheduled注解修饰一下;
在Spring配置文件中添加三个<task:**** />节点;
计划任务类:
/**
* com.zywang.spring.task.SpringTaskDemo.java
* @author ZYWANG 2011-3-9
*/
package com.zywang.spring.task;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
* Spring3 @Scheduled 演示
* @author ZYWANG 2011-3-9
*/
@Component
public class SpringTaskDemo {
@Scheduled(fixedDelay = 5000)
void doSomethingWithDelay(){
System.out.println("I'm doing with delay now!");
}
@Scheduled(fixedRate = 5000)
void doSomethingWithRate(){
System.out.println("I'm doing with rate now!");
}
@Scheduled(cron = "0/5 * * * * *")
void doSomethingWith(){
System.out.println("I'm doing with cron now!");
}
}
Spring配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="/schema/beans"
xmlns:xsi="/2001/XMLSchema-instance" xmlns:task="/schema/task"
xsi:schemaLocation="/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">
<!-- Enables the Spring Task @Scheduled programming model -->
<task:executor id="executor" pool-size="5" />
<task:scheduler id="scheduler" pool-size="10" />
<task:annotation-driven executor="executor" scheduler="scheduler" />
</beans>
还有一种写法:
package springtest.springtask;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
/**
* Created with IntelliJ IDEA.
* User: lixiaoming
* Date: 13-7-31
* Time: 下午4:09
* To change this template use File | Settings | File Templates.
*/
@Component
public class SpringJob1 {
private static Logger logger = LoggerFactory.getLogger(SpringJob1.class);
public void doJob(){
logger.info("do job entry");
}
}
对应的 xml为:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd"
default-lazy-init="true">
<description>task配置文件</description>
<!-- namespace 方式 的便捷版 -->
<task:scheduler id="springScheduler" pool-size="50"/>
<!-- 开启Spring Task -->
<task:annotation-driven/>
<task:scheduled-tasks scheduler="springScheduler">
<task:scheduled ref="springJob1" method="doJob" fixed-delay="60000"/>
</task:scheduled-tasks>
</beans>
参考
http://zywang.iteye.com/blog/949123
分享到:
相关推荐
**Spring-quartz计划任务** Spring框架与Quartz的结合使用,是Java开发中常见的定时任务解决方案。Quartz是一个开源的作业调度框架,可以用来在指定的时间执行特定的任务。而Spring框架则提供了对Quartz的集成,...
Spring框架,作为Java企业级应用开发的事实标准,提供了多种实现计划任务的方式,其中之一就是结合Quartz库来创建和管理定时任务。本项目"Spring与java计划任务项目"旨在帮助开发者,尤其是新手,理解并掌握如何在...
标题中的“spring2 计划任务”指的是Spring框架中的任务调度功能,这在Spring 2.x版本中是非常关键的一部分。Spring作为一个强大的Java企业级应用开发框架,提供了多种方式来实现定时任务,使得开发者可以灵活地定义...
3. 创建Spring的配置文件(如`applicationContext.xml`),配置定时任务的相关bean。 4. 编写定时任务类,可以是普通的Java类,通过`@Component`或`@Service`注解将其纳入Spring管理,然后使用`@Scheduled`或实现`...
Spring提供了多种方式来创建和管理定时任务,包括基于接口的TaskExecutor、基于注解的@Scheduled和集成Quartz Scheduler。下面将详细讲解这三种定时任务的实现方式及其源码分析。 1. **基于TaskExecutor的定时任务*...
在Java Spring框架中,动态配置定时任务是一项非常实用的功能,它允许我们根据需求...3) 设计服务类以响应数据库的变更,及时调整任务的执行计划。通过这样的方式,我们可以创建一个灵活且易于维护的定时任务管理系统。
- **@Scheduled注解**:通过在方法上添加`@Scheduled`,可以创建周期性执行的任务。例如,你可以设置cron表达式来定义执行频率。 - **TaskScheduler接口**:提供了一种抽象的方式来安排和执行任务,可以基于固定...
### Spring2.5定时器任务实现机制与配置详解 #### 一、Spring2.5定时器任务概述 在Spring框架2.5版本中,提供了强大的定时任务管理功能,支持多种方式来实现定时任务的调度与执行。这为开发人员提供了一个灵活且...
在IT行业中,定时任务是常见的一种需求,它允许程序在特定时间或按照一定周期自动执行某些操作,比如发送邮件、进行数据统计、更新系统状态、推送消息、开启活动或创建增量索引等。目前,主要有两种方式可以实现定时...
使用TaskScheduler,你可以创建计划执行、定期执行或延迟执行的任务。 3.使用Spring的异步任务(AsyncTask): 使用@Async注解可以将普通的方法异步执行,使其成为一个异步任务。可以在方法上添加@Async注解并配合@...
接下来,我们可以创建一个带有定时任务的类。在Java类中,我们可以使用`@Scheduled`注解来标记方法作为定时任务。例如: ```java import org.springframework.scheduled.annotation.Scheduled; import org.spring...
本文将详细介绍如何在Spring 3中配置Quartz来实现定时任务。 首先,理解定时任务的基本概念。定时任务是在指定时间点或按照一定规律自动执行的任务,这在业务系统中非常常见,例如数据清理、报表生成等。Quartz提供...
本案例"Spring的计划任务小案例"就是围绕这个主题展开,通过一个名为"TimerTaskDemo"的示例来介绍如何在Spring中实现定时任务。 首先,我们需要在Spring配置文件中开启任务调度支持。这通常在`applicationContext....
在Spring中整合Quartz,我们可以利用Spring的管理能力,如bean的生命周期管理和事务管理,来更方便地创建和管理定时任务。 **Spring+Quartz动态定时任务创建** 将Spring与Quartz结合,我们可以方便地在运行时动态...
2. **Spring TaskScheduler**: `TaskScheduler`接口是Spring提供的另一个核心组件,用于计划周期性的任务。与`TaskExecutor`不同,`TaskScheduler`关注的是定时任务,而不是立即执行的任务。可以使用`...
`TaskExecution`和`TaskScheduling`是Spring框架的基础任务调度API,它们允许开发者创建和执行简单的定时任务。`TaskExecution`接口提供了任务执行的核心功能,如启动、停止和查询任务状态,而`TaskScheduling`接口...
3. **创建Job类**:在Spring-Quartz中,你需要创建一个实现了`org.springframework.scheduling.quartz.JobDetailBean`接口的类,该类代表了你要执行的任务。你可以在这个类中定义任务的具体逻辑。 4. **定义Trigger...
对于Quartz的使用,我们可以通过以下步骤创建一个定时任务: 1. 定义作业类,继承`QuartzJobBean`,并重写`executeInternal`方法来实现具体的任务逻辑。 2. 在Spring配置文件中,使用`JobDetailBean`配置作业类,并...
3. **启动调度服务**:最后是启动 Quartz 调度服务,通常会在应用启动时通过一个 Servlet 来初始化调度器并启动任务。 #### 三、Spring + Quartz 动态任务方案详解 根据提供的代码片段,可以看出这是一个基于 ...