在Spring Boot中,可以使用@Scheduled
注解来创建定时任务。@Scheduled
可以标注在方法上,用于指定方法执行的时间规则。下面是一个简单的例子:
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class ScheduledTasks {
// 每隔5秒执行一次
@Scheduled(fixedRate = 5000)
public void reportCurrentTime() {
System.out.println("Current time is " + new Date());
}
// 每天凌晨2点执行
@Scheduled(cron = "0 0 2 * * ?")
public void runScheduledTask() {
// 执行定时任务的逻辑代码
System.out.println("Executing scheduled task...");
}
}
在上面的示例中,我们创建了一个ScheduledTasks
类,并且使用@Component
注解将其标注为一个组件,以便Spring Boot能够扫描到它。然后我们在方法上使用@Scheduled
注解来指定方法的执行时间规则。在第一个方法中,我们使用fixedRate
参数来指定每隔5秒执行一次任务;在第二个方法中,我们使用cron
参数来指定每天凌晨2点执行任务。
需要注意的是,定时任务的方法不能带有参数,并且返回值类型必须为void。
另外,要启用定时任务功能,需要在启动类上添加@EnableScheduling
注解:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
通过以上步骤,就可以在Spring Boot应用中创建并启用定时任务了。