2016-10-31 3 views
1

Ich weiß nicht, was der richtige Begriff ist, aber von "One-Shot" -Programm meinte ich ein Programm, das vom Start einer Hauptfunktion bis zum Ende und endet .kann Spring Boot in einem "One-Shot" Programm verwendet werden

Ich mache es mit solchen Text Normalerweise:

AnnotationApplicationContext ac = new AnnotationApplicationContext("myConfigClass") 
MyBean myStuff = ac.getBean("myBean"); 
myStuff.doSomething(); 
ac.flush(); 
ac.close(); 

Ich kann immer noch ein gutes Geschäft von Spring Features nutzen Programmierung so. Allerdings, wenn ich Springboot ausprobiere, mag ich das einfach (bitte ignoriere Syntaxfehler, da ich den Ausschnitt in Gedanken kritzeln möchte) - es dachte, es würde die Programmierung weiter vereinfachen (mit weniger Zeilen und weniger Annotationen):

Allerdings habe ich festgestellt, dass das Programm, nach dem Start, als Dienst bleibt, bis explizit getötet wird.

Meine Frage ist daher: Ist Springboot nur für Web-Anwendungen wie Spring MVC oder Webservice-Dienste geeignet? Und es ist nicht für einfache "One-Shot" -Programme gedacht? Und eine relevante Frage ist: startet ein eingebetteter Tomcat (oder Jitty) immer, wenn SpringBootApplication verwendet wird und ausgeführt wird?

Ich hoffe, ich habe mich verstanden. Jeder kann helfen?

+0

Mögliche Duplikat [Frühling Boot: Ausnahme während Anwendung beenden] (http://stackoverflow.com/ Fragen/35936125/Spring-Boot-Ausnahme-while-exitting-Anwendung) – Patrick

+0

ja es ist möglich. Sehen Sie sich [meine Antwort] an (http://stackoverflow.com/a/35936627/3493036). – Patrick

+0

Mehr Informationen über Tomcat im Frühjahr Boot hier: [Spring Boot ohne den Webserver] (http://Stackoverflow.com/a/26105252/2425682) –

Antwort

2

Wenn Sie eine Feder Boot-Anwendung mit CLR (CommandLineRunner) ausführen, werden Sie keinen Server benötigen

@SpringBootApplication 
public class App implements CommandLineRunner { 

    @Autowired 
    private MyBean myStuff; 

    public static void main(String[] args) { 
     SpringApplication.run(App.class, args); 
    } 

    public void run(String... strings) throws Exception { 
     myStuff.doSomething(); 
    } 
} 
Verwandte Themen