Spring计划任务的实现非常简单,通过@Scheduled声明计划任务,通过@EnableScheduling配置来开启开计划任务的支持>
一、计划任务执行类
package demo2.service;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
@Service
public class ScheduledTaskService {
private static final SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
@Scheduled(fixedRate = 5000) //1
public void reportCurrentTime() {
System.out.println("每隔5秒执行一次:" + sdf.format(new Date()));
}
@Scheduled(cron = "0 06 16 ? * *") //2
public void fixTimeExecution() {
System.out.println("在指定时间执行:" + sdf.format(new Date()));
}
}
1:每隔5秒执行一次
2:规定时间执行一次>
二、通过@EnableScheduling配置开启对计划任务的支持
package demo2.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
@Configuration
@ComponentScan("demo2")
@EnableAspectJAutoProxy
@EnableAsync
@EnableScheduling
public class DIConfig {
}
结果
每隔5秒执行一次:16:05:41
每隔5秒执行一次:16:05:46
每隔5秒执行一次:16:05:51
每隔5秒执行一次:16:05:56
在指定时间执行:16:06:00
每隔5秒执行一次:16:06:01
每隔5秒执行一次:16:06:06