Ich habe eine Spring Boot-Anwendung, die mit Zhipster generiert 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.Wie starte ich eine Spring Boot-Anwendung ohne den eingebetteten Tomcat?
Hier sind meine zwei Hauptklassen (vereinfacht)
Die normale Feder-Boot-App:
@ComponentScan
@AutoConfigure
class Application {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(Application.class)
app.run(args)
}
}
Die Back-Office-App:
@ComponentScan
@AutoConfigure
class BackOfficeApplication {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(BackOfficeApplication.class)
app.run(args)
}
}
Was funktioniert: My Back-Office Anwendung hat Zugriff auf alles, was ich brauche. Spring Services, Beans 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 Federanwendung auf eine andere Weise zu laden, die den eingebetteten Server nicht startet?
Einige Details: * Ich starte die App nicht mit mvn Spring-Boot: run. Ich starte die Klasse direkt mit Java (oder mit Eclipse
Scheint genau das, was ich brauche, ich werde es morgen testen und die Antwort akzeptieren, wenn es funktioniert. – Kaidjin