Spring Task 应用的简单说明


最近在开发javaEE项目时碰到了一个库存预警发邮件需求,所以想到了用定时任务来实现。从Spring 3.0以后spring 整合了定时任务 Spring Task,其实就等同于定时任务Quartz框架。(具体源码实现没有翻阅


Spring Task 定时任务可以用注解和配置文件来实现

方式1:通过注解来实现Spring Task定时任务

步骤一:编写一个java类,定义定时任务方法

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
 * 
 * 通过注解来启用Spring Task 事物(注意:只支持spring 3.0 以上的版本)
 *
 */
@Component("stringTaskDemo")
public class StringTaskDemo1 {
	@Scheduled(cron="0/2 * * * * ?")
	public void test(){
		System.out.println("Spring Task 3.0 以后的特性  集成了定时任务机制!");
	}
}

        说明:@Component是配置Bean, @Scheduled定义定时任务方法,“cron” 参数配置定时任务调度时间,具体参数说明看下面的附录。

步骤二:在Spring配置文件(applicationContext.xml)中开启Spring自动扫描并开启识别定时任务注解@Scheduled

	<context:annotation-config />

	<context:component-scan base-package="com.**.service.**" />
	<!-- 开启事物@Scheduled 注解 -->
	<task:annotation-driven/>
        启动项目就能看到调用了定时任务方法



方式二  通过配置文件的方式来实现Spring Task定时任务

          步骤一:编写一个java类,定义定时任务方法

/**
 * 通过配置文件的方式来启用Spring Task定时任务
 * @author admin
 *
 */

public class StringTaskDemo2 {
	public void test(){
		System.out.println("通过配置文件的方式来启用定时任务!");
	}
}

         步骤二: 在Spring配置文件( applicationContext.xml )中配置任务调度bean,和调度方法

                  

	<bean id="demo2" class="com.axt.helpArticle.controller.StringTaskDemo2"></bean>
	
	<task:scheduled-tasks>
		<task:scheduled ref="demo2" method="test" cron="0/2 * * * * ?"/>
	</task:scheduled-tasks>
    注意:如要在配置文件中出现提示需要引入 xmlns:task="http://www.springframework.org/schema/task"

         启动项目。          

Spring Task 任务调度参数 cron 参数配置说明:

包含七个参数,参数之间用空格隔开    分别表示   秒   分   时   天  月  星期   年(可选)

                                                                      参数包括    *(任意值)   ,(写指定的值)    -(一个范围值)    /(一个时间的间断值)  ?(不确定值)

        示例:

"0 0 12 * * ?"    每天中午十二点触发 

"0 15 10 ? * *"    每天早上10:15触发 

"0 15 10 * * ?"    每天早上10:15触发 

"0 15 10 * * ? *"    每天早上10:15触发 

"0 15 10 * * ? 2005"    2005年的每天早上10:15触发 

"0 * 14 * * ?"    每天从下午2点开始到2点59分每分钟一次触发 

"0 0/5 14 * * ?"    每天从下午2点开始到2:55分结束每5分钟一次触发 

"0 0/5 14,18 * * ?"    每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发 

"0 0-5 14 * * ?"    每天14:00至14:05每分钟一次触发 

"0 10,44 14 ? 3 WED"    三月的每周三的14:10和14:44触发 

"0 15 10 ? * MON-FRI"    每个周一、周二、周三、周四、周五的10:15触发 


                                                   




猜你喜欢

转载自blog.csdn.net/a1106900429/article/details/48311521