Wie starte ich eine Spring Boot-Anwendung ohne den eingebetteten Tomcat?

8

Ich habe eine Spring Boot-Anwendung, die mit jhipster erzeugt wurde, und es funktioniert gut. Ich muss jedoch auch eine zweite Anwendung für einige Backoffice-Batch-Jobs erstellen, und diese Anwendung verwendet die meisten der Spring-Services der ersten Anwendung. Ich habe eine zweite Hauptklasse erstellt, die eine Spring-Boot-Anwendung startet. Das Problem ist, dass auch der eingebettete Webserver und alle Dienste, die nur für die Web-App nützlich sind, gestartet werden. Ich brauche nur die Dienste, die Persistenz und andere Klassen, die nicht spezifisch mit der GUI verbunden sind.

Hier sind meine zwei Hauptklassen (vereinfacht)

Die normale Spring-Boot-App:

%Vor%

Die Back-Office-App:

%Vor%

Was funktioniert: Meine Back-Office-Anwendung hat Zugriff auf alles, was ich brauche. Frühlingsdienste, Bohnen usw. Das Problem: Die Backoffice-App startet die GUI und verhindert, dass ich sie gleichzeitig zweimal starte.

Gibt es eine Möglichkeit, den Start des eingebetteten Tomcat-Servers zu deaktivieren? Gibt es sonst eine Möglichkeit, den Kontext der Spring-Anwendung auf eine andere Weise zu laden, die den eingebetteten Server nicht starten würde?

Einige Details: * Ich starte die App nicht mit mvn spring-boot: run. Ich starte die Klasse direkt mit Java (oder mit Eclipse

    
Kaidjin 10.04.2014, 17:55
quelle

1 Antwort

11

SpringApplication hat eine Eigenschaft webEnvironment . Es ist standardmäßig true, wenn Tomcat im Klassenpfad ist, aber Sie können es auf false setzen (programmgesteuert oder mit spring.main.webEnvironment ).

    
Dave Syer 10.04.2014, 18:37
quelle

Tags und Links