spring中使用注解启动定时器

时间:2022-04-07 23:34:44

首先要配置我们的SpringMVC文件

xmlns 加下面的内容

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.2.xsd

最后是我们的task任务扫描注解

<!-- task任务扫描注解 -->
<task:annotation-driven/>

我配置的扫描位置是

<context:component-scan base-package="com.wuzhut"></context:component-scan>

下面写出一个测试类

package com.wuzhut.task;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class MyTask {
    @Scheduled(cron="0/5 * * * * ? ") //间隔5秒执行
    public void taskCycle(){
        System.out.println("无主题(www.wuzhuti.cn)专注于前端开发技术和程序开发研究的技术博客");
    }
}

注意

需要注意的几点:

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

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

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

4、下面的文章链接是corn表达式、大家可以参考一下