一、创建工程
新建SpringBoot工程,在程序的入口增加@EnableScheduling注解。
@SpringBootApplication @MapperScan("com.wzj.demo.mapper") @EnableScheduling public class SpringBootWebSocketApplication extends SpringBootServletInitializer{ public static void main(String[] args) { SpringApplication.run(SpringBootWebSocketApplication.class, args); } /** * * @param builder a builder for the application context * @return the application builder * @see SpringApplicationBuilder */ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return super.configure(builder); } }
二、创建定时任务
在类添加@Component注解,在类的方法上增加@Scheduled注解
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.Date; @Component public class TestTimeTask { /** * 首次延时1s,然后每2秒执行一次 */ @Scheduled(initialDelay = 1000,fixedRate = 2000) public void task() { System.out.println(new Date()); } }
@Scheduled注解说明该方法是一个调度任务。
- @Scheduled(fixedRate = 5000) :上一次开始执行时间点之后5秒再执行
- @Scheduled(fixedDelay = 5000) :上一次执行完毕时间点之后5秒再执行
- @Scheduled(initialDelay=1000, fixedRate=5000) :第一次延迟1秒后执行,之后按fixedRate的规则每5秒执行一次
- 也可以通过cron表达式
运行工程,每2秒打印一行时间日志