Multimodul-Projekt mit Spring Boot

1. Übersicht

In diesem kurzen Tutorial zeigen wir Ihnen, wie Sie mit Spring Boot ein Projekt mit mehreren Modulen erstellen .

Zuerst erstellen wir ein Bibliotheksglas, das selbst keine Anwendung ist, und dann erstellen wir eine Anwendung, die unsere Bibliothek verwendet.

Eine Einführung in Spring Boot finden Sie in diesem Artikel.

2. Setup

Um unser Multi-Modul-Projekt einzurichten, erstellen wir ein einfaches Modul mit POM-Verpackung, um unsere Bibliotheks- und Anwendungsmodule in unserer Maven-Konfiguration zusammenzufassen:

com.baeldung parent-multi-module pom

Wir werden innerhalb unseres Projekts zwei Verzeichnisse erstellen, die das Anwendungsmodul vom Bibliotheks- JAR- Modul trennen .

Deklarieren wir unsere Module in der Datei pom.xml :

 library application 

3. Bibliotheksglas

Für unsere Bibliotheksmodul, werden wir verwenden Glas Verpackung:

com.baledung.example library jar

Da wir das Spring Boot- Abhängigkeitsmanagement nutzen möchten , verwenden wir das übergeordnete Spring-Boot-Starter-Parent als übergeordnetes Projekt, wobei wir darauf achten, es festzulegenauf einen leeren Wert, damit Maven die übergeordnete Datei pom.xml aus den Repositorys auflöst :

 org.springframework.boot spring-boot-starter-parent 2.2.6.RELEASE  

Beachten Sie, dass wir , wenn wir ein eigenes übergeordnetes Projekt haben, stattdessen das Abhängigkeitsmanagement als Stückliste in die importieren könnenAbschnitt der pom.xml :

   org.springframework.boot spring-boot-dependencies pom 2.2.6.RELEASE import   

Schließlich werden die anfänglichen Abhängigkeiten recht einfach sein:

  org.springframework.boot spring-boot-starter  

In diesem Modul ist das Spring Boot- Plugin nicht erforderlich, da die Hauptfunktion darin besteht, eine ausführbare Über-JAR zu erstellen , die wir für eine Bibliothek nicht benötigen und nicht benötigen.

Danach können wir eine Servicekomponente entwickeln, die von der Bibliothek bereitgestellt wird :

@Service public class EvenOddService { public String isEvenOrOdd(Integer number) { return number % 2 == 0 ? "Even" : "Odd"; } }

4. Anwendungsprojekt

Wie unsere Bibliothek Modul wird unsere Anwendungsmodul verwendet Glas Verpackung:

com.baeldung.example application jar

Und wir werden das Spring Boot- Abhängigkeitsmanagement wie zuvor nutzen:

 org.springframework.boot spring-boot-starter-parent 2.2.6.RELEASE  

Zusätzlich zur Spring Boot-Starterabhängigkeit wird unser im vorherigen Abschnitt erstelltes Bibliotheksglas hinzugefügt :

  org.springframework.boot spring-boot-starter-web   com.baeldung.example library ${project.version}   

Schließlich verwenden wir das Spring Boot Plugin:

   org.springframework.boot spring-boot-maven-plugin   

Es gibt mehrere bequeme Gründe, das oben erwähnte Plugin an dieser Stelle zu verwenden.

Erstens bietet es einen integrierten Abhängigkeitsauflöser, der die Versionsnummer so festlegt, dass sie mit den Spring Boot- Abhängigkeiten übereinstimmt .

Zweitens wird nach der Hauptmethode gesucht, die als ausführbare Klasse gekennzeichnet werden soll.

Schließlich und vielleicht am wichtigsten ist, dass alle Gläser auf dem Klassenpfad gesammelt und ein einziges, lauffähiges Überglas erstellt werden .

Nachdem alles bereit ist, unsere Anwendungsklasse zu schreiben und direkt zur Sache zu kommen, implementieren wir einen Controller in der Hauptanwendungsklasse :

@SpringBootApplication(scanBasePackages = "com.baeldung") @RestController public class EvenOddApplication { private EvenOddService evenOddService; // constructor @GetMapping("/validate/") public String isEvenOrOdd( @RequestParam("number") Integer number) { return evenOddService.isEvenOrOdd(number); } public static void main(String[] args) { SpringApplication.run(EvenOddApplication.class, args); } }

5. Schlussfolgerung

In diesem Artikel haben wir untersucht , wie ein Multi-Modul - Projekt zu implementieren und konfigurieren und ein Bibliothek baut Glas auf seinem eigenen mit Frühlings - Boot .

Codebeispiele finden Sie wie immer auf GitHub.