Umgang mit Befehlszeilenargumenten und Spring
Wenn ich Schreibe, dass eine Feder Befehl Linie Anwendung, die analysiert die Kommandozeilen-Argumente, wie übertrage ich Sie auf den Frühling? Würde ich wollen, dass meine main() so aufgebaut, dass es zuerst analysiert die Kommandozeilen-Argumente und dann inits Frühling? Auch so würde, wie es passieren das Objekt holding der analysierten args bis zum Frühling?
InformationsquelleAutor der Frage lowellk | 2008-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zwei Möglichkeiten, die ich denken kann.
1) einen statischen Verweis. (Eine statische variable, obwohl in der Regel verpönt, ist OK in diesem Fall, da es nur 1 command-line Aufruf).
Können Sie verweisen Sie auf die Kommandozeilen-Argumente, die im Frühjahr über:
Alternativ (wenn du ganz im Gegensatz zu statischen Variablen), können Sie:
2) Programmgesteuert fügen Sie die Argumente auf den Anwendungskontext:
Parsen der Kommandozeilen-Argumente ist Links als übung für den Leser.
InformationsquelleAutor der Antwort flicken
Haben Sie einen Blick auf meine Frühjahr-CLI-Bibliothek - an http://github.com/sazzer/spring-cli - als eine Möglichkeit, dies zu tun. Es gibt Sie, die eine main-Klasse automatisch geladen Frühling Kontexten und hat die Fähigkeit zur Nutzung von Commons-CLI zum Parsen von Kommandozeilen-Argumente automatisch und injizieren Sie in Ihre Bohnen.
InformationsquelleAutor der Antwort Graham
Du kannst auch ein Object-array als zweiter parameter
getBean
die verwendet werden, als Argumente an den Konstruktor oder eine factory.InformationsquelleAutor der Antwort BeWarned
Ab Spring 3.1 es gibt keine Notwendigkeit in den benutzerdefinierten code vorgeschlagen, in anderen Antworten. Überprüfen Sie CommandLinePropertySource, es bietet einen natürlichen Weg, um zu injizieren, CL-Argumente in Ihrem Kontext.
Und wenn Sie einer der glücklichen Frühling-Boot-Entwickler könnte man den code vereinfachen einen Schritt vorwärts, Dank der Tatsache, dass SpringApplication gibt Ihnen die folgenden:
Und wenn Sie daran interessiert sind, die Spring-Boot-Eigenschaft Auflösung Bestellung bitte konsultieren Sie auf dieser Seite.
InformationsquelleAutor der Antwort Sergey Pauk
Betrachten Sie die folgende Klasse:
zusammen mit:
InformationsquelleAutor der Antwort Brian Dilley
Hier ein Beispiel einer boot-strap Frühjahr für eine Main-Methode, die greifen einfach die übergebenen Parameter als normal, dann stellen Sie die Funktion, die Sie nennen auf Ihrem bean (in dem Fall deployer.execute()) nehmen Sie als Strings oder über ein beliebiges format Sie fühlen, geeignet.
InformationsquelleAutor der Antwort Bradley Beddoes