gpt4 book ai didi

java - 在方法中使用 spring 注解启动调度程序

转载 作者:行者123 更新时间:2023-12-02 11:08:35 25 4
gpt4 key购买 nike

我想将 spring 注解 @Scheduled 添加到 spring bean 并在另一个类的方法中启动任务。 spring引用中只有一种启动任务的方法 - Scheduling-Tasks通过@EnableScheduling。如何在没有 @SpringBootApplication 和 spring boot runner 的情况下启动它。

@Component
public class ScheduledTasks {
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

@Scheduled(fixedRate = 5000)
public void reportCurrentTime() {
System.out.println("The time is now {}" + dateFormat.format(new Date()));
}
}

@SpringBootApplication
@EnableScheduling
public class SpringSheduleApplication {

public static void main(String[] args) {
SpringApplication.run(SpringSheduleApplication.class, args);
}
}

@Component
public class ShedullerStarter {
public void start(){
ScheduledTasks tasks = new ScheduledTasks();;
try {
// some code here
} finally {
// start annotation
tasks.reportCurrentTime();
}
}
}

最佳答案

即使没有@SpringBootApplication,您也可以启用调度。只需在项目中的任何 bean 上使用 @EnableScheduling 即可。

@EnableScheduling 不仅仅绑定(bind)到 Spring Boot 应用程序。它是spring框架(不是spring boot jar)下的一个注释。因此,任何 Spring 应用程序都可以通过使用 @EnableScheduling 启用调度来指示框架查找 @Scheduled 注解。

你可以把它放在任何 Spring Bean 上。例如

@Configuration
@EnableScheduling
public class AppConfig {

// various @Bean definitions

}

或者甚至在你有@Scheduled方法的类上

关于java - 在方法中使用 spring 注解启动调度程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50755771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com