spring3中计划任务task

来源:互联网 发布:seo站长常用的查询工具 编辑:程序博客网 时间:2024/05/01 18:22

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

<beans xmlns="http://www.springframework.org/schema/beans"    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方法

    <task:scheduled-tasks>         <task:scheduled ref="taskJob" method="work" cron="0 * * * * ?"/>     </task:scheduled-tasks>

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

package com.company.web.servlet;import org.springframework.stereotype.Service;@Servicepublic class TaskJob {        public void work() {        System.out.println(123);    }}

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

<context:component-scan base-package="com.company.web.servlet" />

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


原创粉丝点击