spring3中计划任务task

2014-11-24 11:17:32 · 作者: · 浏览: 1

1.spring配置文件上添加对task的描述


xmlns:task="http://www.springframework.org/schema/task"
。。。。。。
xsi:schemaLocation="http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">


2.spring配置文件中设置具体的任务

cron表达式的介绍可以参考其他文档,跟Quartz的表达式是一样的,"0 * * * * "是指每分钟执行该任务,任务内容为taskJob中work方法




3.对应的TaskJob类文件如下:


package com.company.web.servlet;

import org.springframework.stereotype.Service;

@Service
public class TaskJob {

public void work() {
System.out.println(123);
}

}
由于这里使用了注解,需要在spring配置文件中设置扫描路径,如果未使用注解,把QuzrtzJob类加入spring配置文件即可


task也可以使用注解的方式实现


@Component //import org.springframework.stereotype.Component;
public class MyTestServiceImpl implements IMyTestService {
@Scheduled(cron="0/5 * * * * ") //每5秒执行一次
@Override
public void myTest(){
System.out.println("进入测试");
}
}


需要注意的几点:

1、spring的@Scheduled注解 需要写在实现上、

2、 定时器的任务方法不能有返回值(如果有返回值,spring初始化的时候会告诉你有个错误、需要设定一个proxytargetclass的某个值为true、具体就去百度google吧)

3、实现类上要有组件的注解@Component