Spring自己本身的轻量级定时器的两种实现方式:配置式和注解式
一、配置式,实现方式如下:
1、新建一个类:
package com.wkx.task;
import org.springframework.stereotype.Service;
/**
* <任务测试类--配置>
* <功能详细描述>
* @author wenkaixuan
* @version [版本号, 2013-3-4]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
@Service
public class TaskJob
{
public void job1()
{
System.out.println("配置任务");
}
}
在spring配置文件中配置如下:
<!-- 定时器配置
-->
- <task:scheduled-tasks>
<task:scheduled ref="taskJob" method="job1" fixed-rate="3000" />
- <!-- 每隔三秒执行一次
-->
- <!-- <task:scheduled ref="taskJob" method="job1" cron="50 10 17 ? * *"/>
-->
- <!-- 每天17点10分50秒执行一次
-->
</task:scheduled-tasks>
二、注解式,实现方式如下:
1、新建一个类
package com.wkx.task;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
* <任务测试类--注解>
* <功能详细描述>
* @author wenkaixuan
* @version [版本号, 2013-3-4]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
@Component("taskJob2")
public class TaskJob2
{
// @Scheduled(fixedRate = 2000) // 每隔两秒执行一次
@Scheduled(cron = "50 45 17 ? * *") // 每天的17点45分50秒执行一次
public void job2()
{
System.out.println("注解任务");
}
}
2、在spring中的配置如下:
<!-- spring注解扫描 -->
<context:annotation-config />
<!-- 定时器扫描的包
-->
<context:component-scan base-package="com.wkx.task" />
<!-- 注解任务所需
-->
<task:annotation-driven scheduler="qbScheduler" mode="proxy" />
<task:scheduler id="qbScheduler" pool-size="10" />
关键类请查阅附件