Spring Boot实现定时任务新解,你是否能get到?
在Spring Boot中实现定时任务的一种新解是使用@Scheduled
注解。这个注解可以通过cron表达式来设置定时任务的执行周期。
以下是一个使用@Scheduled
注解的例子:
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.format.DateTimeFormatter;
import java.time.LocalDateTime;
@Component
public class ScheduledTasks {
private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
@Scheduled(fixedRate = 5000)
public void reportCurrentTime() {
System.out.println("现在时间是:" + dateTimeFormatter.format(LocalDateTime.now()));
}
}
在这个例子中,reportCurrentTime
方法每5秒钟执行一次,并打印当前时间。
如果你想使用cron表达式,可以这样做:
@Scheduled(cron = "0 * * * * *")
public void executeEveryMinute() {
System.out.println("每分钟执行一次。时间:" + dateTimeFormatter.format(LocalDateTime.now()));
}
在这个例子中,executeEveryMinute
方法将会在每个整分钟执行,即每个小时的第0秒时。
要启用定时任务,你需要在Spring Boot应用的主类或配置类上添加@EnableScheduling
注解:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling
public class ScheduledTasksApplication {
public static void main(String[] args) {
SpringApplication.run(ScheduledTasksApplication.class, args);
}
}
以上代码展示了如何在Spring Boot应用中使用@Scheduled
注解来实现定时任务。这是一种简洁而有效的实现方式,适用于简单和复杂的定时任务需求。
评论已关闭