[JAVA] Fügen Sie mehrere Hauptklassen in ein Frühlingsprojekt ein

Überblick

Wenn Ihr Projekt mehrere Stapel enthält, haben Sie die Möglichkeit, mehrere Stapel in ein Projekt einzufügen, in mehrere Projekte aufzuteilen usw. In diesem Artikel habe ich den früheren Ansatz ausprobiert, mehrere Stapel in ein Projekt einzufügen und die Hauptklassen zu trennen.

Annahme

>gradle -v

------------------------------------------------------------
Gradle 6.5
------------------------------------------------------------

Build time:   2020-06-02 20:46:21 UTC
Revision:     a27f41e4ae5e8a41ab9b19f8dd6d86d7b384dad4

Kotlin:       1.3.72
Groovy:       2.5.11
Ant:          Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM:          11.0.2 (Oracle Corporation 11.0.2+9)
OS:           Windows 10 10.0 amd64

STS 3.9.9.RELEASE (Ich muss es zu einem schlampigen 4-System machen ...)

Projektstruktur

multiple-main └src/main/java  └com/example/dem   ├MultipleApplication.java   └MultipleApplication2.java

So rufen Sie die Hauptklasse auf

Für STS

Wenn Sie versuchen, Spring Application auszuführen, wird der Bildschirm zur Auswahl der Hauptklasse wie in der folgenden Abbildung dargestellt angezeigt. Wählen Sie daher diejenige aus, die Sie ausführen möchten. スクリーンショット 2020-11-03 094542.png

Für Gradle

Geben Sie nach dem Laden des Anwendungs-Plug-Ins die Hauptklasse an. Dies ist unpraktisch, da Sie build.gradle einzeln neu schreiben müssen. (Referenzlink 1)

plugins {
	id 'org.springframework.boot' version '2.3.5.RELEASE'
	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
	id 'java'
	id 'application'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
mainClassName = "com.example.demo.MultipleMainApplication2"

repositories {
	mavenCentral()
}

Für die Ausführung von Gläsern

java -cp multiple-main-0.0.1-SNAPSHOT.jar -Dloader.main=com.example.demo.MultipleMainApplication org.springframework.boot.loader.PropertiesLauncher

(Referenzlink 2)

PropertiesLauncher ist wer? Selbst wenn die Hauptklasse von build.gradle MultipleMainApplication2 ist, konnte ich MultipleMainApplication (nicht markiert) starten.

Zusammenfassung

Es ist nicht unmöglich, aber ich fand es unangenehm. Mit der Main-Klasse ist es schwierig, Beans unter Spring-Management zu behandeln (es ist nicht unmöglich, damit umzugehen). Wenn Sie also mehrere Prozesse in ein Projekt einfügen möchten, ist es meiner Meinung nach besser, Runner zu wechseln, indem Sie auf den folgenden Artikel verweisen. (Diese Methode wurde auch im Feld übernommen).

Fügen Sie mehrere CommandLineRunner / ApplicationRunner-Implementierungsklassen in die ausführbare JAR-Datei von Spring Boot ein und wechseln Sie die Klasse, die von den Eigenschaften beim Start ausgeführt werden soll - Qiita

Referenzlink

  1. Kapitel 45 Anwendungs-Plugins
  2. Spring Boot: Hauptklasseneinstellungen
  3. Fügen Sie mehrere CommandLineRunner / ApplicationRunner-Implementierungsklassen in die ausführbare JAR-Datei von Spring Boot ein und wechseln Sie die Klasse, die von den Eigenschaften beim Start ausgeführt werden soll - Qiita

Recommended Posts

Fügen Sie mehrere Hauptklassen in ein Frühlingsprojekt ein
Erstellen Sie mit IntelliJ ein Java Spring Boot-Projekt
Führen Sie ein Spring Boot-Projekt mit VS-Code aus
Java-Tipps - Erstellen Sie mit Gradle ein Spring Boot-Projekt
So definieren Sie mehrere orm.xml in Spring4, JPA2.1
Zeigen Sie die Gradle-Aufgabe im Spring Boot-Projekt an
Holen Sie sich im Frühjahr mehrere Ressourcen, die dem Muster entsprechen
So erstellen Sie ein Spring Boot-Projekt in IntelliJ
Probieren Sie gRPC im Spring Boot & Spring Cloud-Projekt (Mac OS) aus.