`
bjmike
  • 浏览: 283009 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring3创建计划任务

 
阅读更多
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计划任务** Spring框架与Quartz的结合使用,是Java开发中常见的定时任务解决方案。Quartz是一个开源的作业调度框架,可以用来在指定的时间执行特定的任务。而Spring框架则提供了对Quartz的集成,...

    Spring与java计划任务项目,本人亲切可用。

    Spring框架,作为Java企业级应用开发的事实标准,提供了多种实现计划任务的方式,其中之一就是结合Quartz库来创建和管理定时任务。本项目"Spring与java计划任务项目"旨在帮助开发者,尤其是新手,理解并掌握如何在...

    spring2 计划任务

    标题中的“spring2 计划任务”指的是Spring框架中的任务调度功能,这在Spring 2.x版本中是非常关键的一部分。Spring作为一个强大的Java企业级应用开发框架,提供了多种方式来实现定时任务,使得开发者可以灵活地定义...

    Spring中定时任务

    3. 创建Spring的配置文件(如`applicationContext.xml`),配置定时任务的相关bean。 4. 编写定时任务类,可以是普通的Java类,通过`@Component`或`@Service`注解将其纳入Spring管理,然后使用`@Scheduled`或实现`...

    Spring 定时任务源码(spring 三种定时任务的实现方式)

    Spring提供了多种方式来创建和管理定时任务,包括基于接口的TaskExecutor、基于注解的@Scheduled和集成Quartz Scheduler。下面将详细讲解这三种定时任务的实现方式及其源码分析。 1. **基于TaskExecutor的定时任务*...

    spring动态配置定时任务

    在Java Spring框架中,动态配置定时任务是一项非常实用的功能,它允许我们根据需求...3) 设计服务类以响应数据库的变更,及时调整任务的执行计划。通过这样的方式,我们可以创建一个灵活且易于维护的定时任务管理系统。

    spring 任务调度

    - **@Scheduled注解**:通过在方法上添加`@Scheduled`,可以创建周期性执行的任务。例如,你可以设置cron表达式来定义执行频率。 - **TaskScheduler接口**:提供了一种抽象的方式来安排和执行任务,可以基于固定...

    spring2.5 定时器任务

    ### Spring2.5定时器任务实现机制与配置详解 #### 一、Spring2.5定时器任务概述 在Spring框架2.5版本中,提供了强大的定时任务管理功能,支持多种方式来实现定时任务的调度与执行。这为开发人员提供了一个灵活且...

    Spring 框架自带定时任务和Quartz定时任务

    在IT行业中,定时任务是常见的一种需求,它允许程序在特定时间或按照一定周期自动执行某些操作,比如发送邮件、进行数据统计、更新系统状态、推送消息、开启活动或创建增量索引等。目前,主要有两种方式可以实现定时...

    Java课程实验 Spring Boot 任务管理(源代码+实验报告)

    使用TaskScheduler,你可以创建计划执行、定期执行或延迟执行的任务。 3.使用Spring的异步任务(AsyncTask): 使用@Async注解可以将普通的方法异步执行,使其成为一个异步任务。可以在方法上添加@Async注解并配合@...

    spring xml 定时任务

    接下来,我们可以创建一个带有定时任务的类。在Java类中,我们可以使用`@Scheduled`注解来标记方法作为定时任务。例如: ```java import org.springframework.scheduled.annotation.Scheduled; import org.spring...

    spring3配置quartz定时任务

    本文将详细介绍如何在Spring 3中配置Quartz来实现定时任务。 首先,理解定时任务的基本概念。定时任务是在指定时间点或按照一定规律自动执行的任务,这在业务系统中非常常见,例如数据清理、报表生成等。Quartz提供...

    Spring的计划任务小案例

    本案例"Spring的计划任务小案例"就是围绕这个主题展开,通过一个名为"TimerTaskDemo"的示例来介绍如何在Spring中实现定时任务。 首先,我们需要在Spring配置文件中开启任务调度支持。这通常在`applicationContext....

    spring+quartz动态定时任务创建 +mybatis

    在Spring中整合Quartz,我们可以利用Spring的管理能力,如bean的生命周期管理和事务管理,来更方便地创建和管理定时任务。 **Spring+Quartz动态定时任务创建** 将Spring与Quartz结合,我们可以方便地在运行时动态...

    spring定时任务关键jar包(齐全)

    2. **Spring TaskScheduler**: `TaskScheduler`接口是Spring提供的另一个核心组件,用于计划周期性的任务。与`TaskExecutor`不同,`TaskScheduler`关注的是定时任务,而不是立即执行的任务。可以使用`...

    Spring实现任务调度

    `TaskExecution`和`TaskScheduling`是Spring框架的基础任务调度API,它们允许开发者创建和执行简单的定时任务。`TaskExecution`接口提供了任务执行的核心功能,如启动、停止和查询任务状态,而`TaskScheduling`接口...

    spring-quartz定时任务小实例

    3. **创建Job类**:在Spring-Quartz中,你需要创建一个实现了`org.springframework.scheduling.quartz.JobDetailBean`接口的类,该类代表了你要执行的任务。你可以在这个类中定义任务的具体逻辑。 4. **定义Trigger...

    spring定时任务实现

    对于Quartz的使用,我们可以通过以下步骤创建一个定时任务: 1. 定义作业类,继承`QuartzJobBean`,并重写`executeInternal`方法来实现具体的任务逻辑。 2. 在Spring配置文件中,使用`JobDetailBean`配置作业类,并...

    spring+quartz 动态任务方案

    3. **启动调度服务**:最后是启动 Quartz 调度服务,通常会在应用启动时通过一个 Servlet 来初始化调度器并启动任务。 #### 三、Spring + Quartz 动态任务方案详解 根据提供的代码片段,可以看出这是一个基于 ...

Global site tag (gtag.js) - Google Analytics