我的spring-boot
应用程序可以从command line
运行,arguments
作为参数传递。
我想设置我的main method
,以便在用户传递“a”作为参数时:运行任务A.如果他们传递“b”作为参数,则运行任务B.
我目前正在使用以下方式实现此目的:
if(args.toString().contains("a")){
//run task A
}
有更好的方法吗?上述实现是否正确?
Full Runner课程:
@Component
public class MyRunner implements CommandLineRunner {
//other code
@Override
@Transactional
public void run(String... args) throws Exception {
if(args.toString().contains("a")){
//run task A
}
if(args.toString().contains("b")){
//run task B
}
}
}
答案 0 :(得分:4)
args.toString
不是您想要的,它将返回数组的toString,类似于:[Ljava.lang.String;@15db9742
这更有可能是你想要的:
for(String arg : args) {
if(arg.equals("a")) { // or .contains
// run task A
}
}