Spring 引导应用程序:将应用程序拆分为单独的任务以便从命令行 运行?

Spring Boot application: Splitting application into seperate tasks to be ran from command line?

在我的 Spring boot application 中,我目前 运行 使用以下内容:

@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan("my.packages.to.scan")
@EnableScheduling
public class Scheduler {

    public static void main(String[] args){

        SpringApplication.run(Scheduler.class, args);
    }
}

然后找到以下 class 到 运行:

@Component
public class MyApplication {

    @Transactional
    @Scheduled(fixedRate = 400000, initialDelay = 1000)
    public void tasks() {

        methodOne();
        methodTwo();
        methodThree();
    }

    public void methodOne() {

    }

    public void methodTwo() {

    }

    public void methodthree() {

    }

}

从上面可以看出,我的应用程序运行依次三个方法

我想更改我的应用程序,以便任何 method/task可以从命令行运行在任何时候,而不是连续调用 main 方法和 运行ning 所有三个方法。

我该怎么做?我是否需要从 MyApplication class 移动我的方法?

我建议查看您可能感兴趣的项目 Spring Batch. That project is exactly for such requirements. Especially this section of its docs。它描述了如何 spring 从命令行执行批处理作业。

对评论的反应: Here is my Github repository with working example。请注意 shell 脚本作为示例如何从命令行执行某些任务。