spring从3.1开始,使用计划任务变得很简单,以下为测试案例,spring的基本环境构建这里省略。
1.编写计划任务执行类,使用@Scheduled注解声明为计划任务方法。
package com.task;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
@Service
public class ScheduledTaskService {
@Scheduled(fixedRate = 1000)
public void task1(){
System.out.println("每隔一秒执行一次");
}
@Scheduled(cron = "0 58 20 * * ?")//cron表达式
public void task2(){
System.out.println("指定时间执行:" + new SimpleDateFormat("HH:mm:ss").format(new Date()));
}
}
2.编写配置类,使用@EnableScheduling注解开启计划任务。
package com.task;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
@Configuration
@EnableScheduling
@ComponentScan("com.task")
public class ScheduledConfig {
}
3.运行测试
package com.task;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class TestScheduled {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ScheduledConfig.class);
}
}
测试结果: