Meine spring-boot
Anwendung kann von der command line
mit arguments
als Parameter übergeben werden.If-Anweisung abhängig davon, welches Befehlszeilenargument übergeben wird?
Ich möchte meine main method
so einrichten, dass, wenn ein Benutzer "a" als Argument übergeben: Aufgabe A wird ausgeführt. Wenn sie "b" als Argument übergeben, wird Task B ausgeführt.
Ich bin die Umsetzung dieses zur Zeit mit:
if(args.toString().contains("a")){
//run task A
}
Gibt es einen besseren Weg, dies zu tun/ist die obige Implementierung korrekt?
Voll Runner Klasse:
@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
}
}
}
Ich würde Checkout http://StackOverflow.com/Questions/367706/How-to-Parse-Command-Line-Arguments-in-Jav a für bessere Möglichkeiten, die eingehenden Argumente zu parsen. weil die Art, wie du es machst, viele falsche Positive haben wird. beispielsweise. Was passiert, wenn der Benutzer "Korb" als Argument übergibt? – karina
Siehe [Problem mit der Java-Befehlszeilenargumente] (http://stackoverflow.com/questions/716153/java-command-line-arguments). Dies ist ein Duplikat. – jtmingus