在Spring Boot中,有两种方式来配置定时任务:
@Scheduled
注解来标记一个方法为定时任务。可以在方法上使用@Scheduled
注解来指定任务的执行时间表达式,如@Scheduled(cron = "0/5 * * * * *")
表示每5秒执行一次。需要在启动类上添加@EnableScheduling
注解来开启定时任务的支持。示例代码如下:
@SpringBootApplication
@EnableScheduling
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Scheduled(cron = "0/5 * * * * *")
public void task() {
// 定时任务逻辑
System.out.println("定时任务执行...");
}
}
Runnable
或Callable
接口,并在run()
方法中编写定时任务的逻辑。然后使用@Bean
注解将实现类注入到Spring容器中。Spring Boot会自动检测并执行实现了Runnable
或Callable
接口的Bean。示例代码如下:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public Runnable task() {
return () -> {
// 定时任务逻辑
System.out.println("定时任务执行...");
};
}
}
需要注意的是,以上两种方式都需要在Spring Boot的启动类上添加相应的注解来开启定时任务的支持。