使用Spring Task轻松完成定时任务
一、背景
最近项目中需要使用到定时任务进行库存占用释放的需求,就总结了如何使用Spring Task进行简单配置完成该需求,本文介绍Spring3.0以后自定义开发的定时任务工具,
spring task,我们可以将它比作一个轻量级的Quartz,使用简单方便,除spring相关的包外不需要额外的包,而且支持注解和配置文件两种形式,下面我会分别介绍这两种方式。
二、定时任务开发步骤
开发环境
- Spring 4.2.6.RELEASE
- Maven 3.3.9
- JDK 1.7
- Idea 15.04
【1】.基于配置文件
1.编写普通java class
package com.hafiz.www.cron; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Desc:第一个基于SpringTask的调度任务 * Created by hafiz.zhang on 2016/12/11. */ public class FirstCron { private static final Logger logger = LoggerFactory.getLogger(FirstCron.class); public void cron() { logger.info("定时任务进行中......."); // do something else } }
2.在spring配置文件头中添加命名空间及描述(下面加粗处)并配置定时任务
1 <beans xmlns="http://www.springframework.org/schema/beans" 2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns:task="http://www.springframework.org/schema/task" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans 5 http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 6 http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd"> 7 8 <bean id="firstCron" class="com.hafiz.www.cron.FirstCron"/> 9 <task:scheduled-tasks> 10 <task:scheduled ref="firstCron" method="cron" cron="0/5 * * * * ?"/> 11 </task:scheduled-tasks> 12 </beans>
我们设置每5秒钟运行一次。