gpt4 book ai didi

java - 基于命令行参数的多个 Spring boot CommandLineRunner

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:35:04 27 4
gpt4 key购买 nike

我已经使用 spring cloud 任务创建了 spring boot 应用程序,它应该执行一些命令(任务)。每个任务/命令都是短期任务,所有任务都是从命令行启动,做一些简短的 ETL 工作并完成执行。

有一个包含所有命令/任务的 spring boot jar。每个任务都是 CommandLineRunner,我喜欢根据命令行的参数来决定执行哪些任务(一个或多个)。这样做的最佳做法是什么?我不喜欢询问“if else”或类似问题的肮脏代码。

最佳答案

您还可以让您的 CommandLineRunner 实现 @Component 和 @ConditionalOnExpression("${someproperty:false}")

然后有多个配置文件,将一些属性设置为 true 以将这些 CommandLineRunners 包含在上下文中。

@Component
@Slf4j
@ConditionalOnExpression("${myRunnerEnabled:false}")
public class MyRunner implements CommandLineRunner {
@Override
public void run(String ... args) throws Exception {
log.info("this ran");
}
}

在 yml application-myrunner.yml 中

myRunnerEnabled: true
@SpringBootApplication
public class SpringMain {
public static void main(String ... args) {
SpringApplication.run(SpringMain.class, args);
}
}

关于java - 基于命令行参数的多个 Spring boot CommandLineRunner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44481342/

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