【Spring Boot】Spring基础 —— Spring计划任务

Spring计划任务


文章目录

      • 1.概述
      • 2.建立包
      • 3.定义任务执行类
      • 4.定义配置类
      • 5.定义测试主类Main
      • 6.测试




1.概述

从Spring 3.1开始,计划任务在Spring中的实现变得异常的简单。首先通过在配置类注解@EnableScheduling来开启对计划任务的支持,然后在要执行计划任务的方法上注解@Scheduled,声明这是一个计划任务。
Spring通过@Scheduled支持多种类型的计划任务,包含cron、fixDelay、fixRate等。

下面通过一个实际的例子来举例说明。




2.建立包

首先我们在 “src/main/java/com/study/spring/” 下建立一个新的包"ch3.taskscheduler",然后在这个包下再新建3个类,整个项目的结构如下图所示:
【Spring Boot】Spring基础 —— Spring计划任务_第1张图片



3.定义任务执行类

计划任务执行类ScheduledTaskService的内容如下:

package com.study.spring.ch3.taskscheduler;

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

import java.text.SimpleDateFormat;
import java.util.Date;

@Service
public class ScheduledTaskService {
     
    private static final SimpleDateFormat dataFormat = new SimpleDateFormat("HH:mm:ss");

    @Scheduled(fixedRate = 5000)        //通过@Scheduled声明该方法是一个计划任务,fixedRate属性则指示了每隔固定事件执行(单位:ms)
    public void reportCurrentTime(){
     
        System.out.println("每隔五秒执行一次 "+dataFormat.format(new Date()));
    }

    @Scheduled(cron = "00 53 21 ? * *") //使用corn属性可按照指定时间执行,此处是指于每天的21:53分执行
    public void fixTimeExecution(){
     
        System.out.println("在指定时间 " + dataFormat.format(new Date()) + "执行");
    }
}



4.定义配置类

配置类TaskSchedulerConfig的内容如下:

package com.study.spring.ch3.taskscheduler;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;

@Configuration
@ComponentScan("com.study.spring.ch3.taskscheduler")
@EnableScheduling                          //使用@EnableScheduling注解开启对计划任务的支持
public class TaskSchedulerConfig {
     
}



5.定义测试主类Main

测试主类Main的内容如下:

package com.study.spring.ch3.taskscheduler;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {
     
    public static void main(String[] args){
     
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(TaskSchedulerConfig.class);
    }
}



6.测试

选择刚刚建立的测试主类Main文件,右键,在弹出的窗体中选择"Run",效果如下:
【Spring Boot】Spring基础 —— Spring计划任务_第2张图片
上图结果显示的是:
我们通过fixedRate设定的时间间隔和corn设定的定时任务。




你可能感兴趣的:(#,Spring,基础,Spring,Boot,Spring计划任务,Spring定时任务,Spring基础,Spring,Boot)