spring mvc 配置使用定时任务

1、首先需要在spring的配置文件spring-mvc.xml的头部beans中添加如下代码:

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

 

2、配置定时任务扫描注解:

<task:annotation-driven/>或者这样写
<!--开启这个配置,spring才能识别@Scheduled注解-->
<task:annotation-driven scheduler="xxxScheduler"/>
<task:scheduler id="xxxScheduler" pool-size="10"/>

3、配置扫描任务的地址:(方式一,直接启动项目就开启定时任务去执行)

<context:component-scan base-package="com.xxx.xxxx.task" />

 

接下来写定时任务需要执行的class:

@Component
public class Task {

    /**
     * 每5分钟执行一次
     *
     */
    @Scheduled(cron = "0 0/5 * * * ?")
    public void task() {
//方式二:手动设置是否需要开启定时任务,使用全局配置文件设置定时任务是否开启,设置一个Boolean类型的值,获取到判断
        if (!ConfigKit.getUseTask()) {
            return;
        }
//这里是需要执行定时任务的方法体,里面可根据业务逻辑去实现自己的功能
        System.out.println("执行了任务。。。。。。。");
    }

//@Scheduled(cron = "0 0 1 * * ?")每天凌晨1点整

//@Scheduled(cron = "0 30 0 * * ?")每天凌晨0点30分

//@Scheduled(cron = "0 */60 * * * ?")1小时处理一次

}

4、使用需要注意以下:

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

②、spring的@Scheduled注解  需要写在实现方法上

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

 

 

 


版权声明:本文为aoxiang94原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。