Java 一个方法上有多个@Scheduled注释

Java 一个方法上有多个@Scheduled注释,java,spring-boot,scheduled-tasks,Java,Spring Boot,Scheduled Tasks,在一个方法中允许/使用多个@Scheduled注释吗 @Scheduled(cron = "0 5 0 * * *", zone = "Europe/Stockholm") @Scheduled(fixedRate = 1000 * 60 * 20, initialDelay = 1000 * 60 * 5) public void setSalariesAsArchived() { //... } 是的,这是完全合法的,因为@Scheduled是一个@

在一个方法中允许/使用多个@Scheduled注释吗

@Scheduled(cron = "0 5 0 * * *", zone = "Europe/Stockholm")
@Scheduled(fixedRate = 1000 * 60 * 20, initialDelay = 1000 * 60 * 5)
public void setSalariesAsArchived() {
//...
}

是的,这是完全合法的,因为
@Scheduled
是一个
@可重复的
注释,如中所述

聚合多个
计划的
批注的容器批注。
可以本机使用,声明多个嵌套的
计划的
注释。还可以与Java 8对可重复注释的支持结合使用,其中,
Scheduled
可以简单地在同一方法上声明多次,隐式地生成此容器注释

因此,您可以像以前一样使用它,也可以像下面的示例中那样使用
@Schedules
来包装它

@Schedules({
    @Scheduled(cron = "0 5 0 * * *", zone = "Europe/Stockholm"),
    @Scheduled(fixedRate = 1000 * 60 * 20, initialDelay = 1000 * 60 * 5)
})
public void setSalariesAsArchived() {
//...
}