Multi-Modul-Projekt mit Springboot

Multi-Modul-Projekt mit Spring Boot

1. Überblick

In diesem kurzen Tutorial zeigen wirhow to create a multi-module project with Spring Boot.

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

Eine Einführung inSpring Boot finden Sie unterthis article.

2. Konfiguration

Um unser Multi-Modul-Projekt einzurichten, lassen Sie unscreate a simple module using pom packaging to aggregate our library and application modules in unserer Maven-Konfiguration verwenden:

org.example
parent-multi-module
pom

In unserem Projekt werden zwei Verzeichnisse erstellt, die das Anwendungsmodul vom Modul der Bibliothekjartrennen.

Deklarieren wir unsere Module inpom.xml:


    library
    application

3. Bibliothek Jar

Für unserlibrary-Modul verwenden wir diejar-Verpackung:

com.baledung.example
library
jar

Da wirtake advantage of Spring Boot dependency management alsspring-boot-starter-parent  als übergeordnetes Projekt verwenden möchten, achten wir aufset <relativePath/> to an empty value, damit Maven die übergeordnetenpom.xml aus den Repositorys auflöst:


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

Beachten Sie, dassif we have our own parent project, we can instead import the dependency management as a Bill of Materials (BOM) im Abschnitt<dependencyManagement/> vonpom.xml:


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

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


    
        org.springframework.boot
        spring-boot-starter
    

In diesem Modul dieSpring Boot plugin isn’t necessary because the main function of it is to create an executable*über-jar*,, die wir für eine Bibliothek nicht wollen und nicht brauchen.

Danach sind wir bereit fürdevelop a service component that will be provided by the library:

@Service
public class EvenOddService {

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

4. Anwendungsprojekt

Wie unser Modullibraryverwendet auch unser Anwendungsmodul die Verpackung vonjar:

com.example.example
application
jar

Und wir werden das Abhängigkeitsmanagement vonSpring Bootwie zuvor nutzen:


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

Zusätzlich zur Spring Boot-Starterabhängigkeit werdeninclude our library jar created in the previous section:


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

Schließlich werden wiruse the Spring Boot plugin:


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

Es gibt mehrere praktische 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 Abhängigkeiten vonSpring Bootübereinstimmt.

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

Schließlich und vielleicht am wichtigsten ist, dass allejars auf denclasspath gesammelt werden und ein einzelnes, ausführbaresüber-jar erstellt wird.

Jetzt, da alles bereit ist, unsere Anwendungsklasse zu schreiben und direkt zum Punkt zu kommen, lassen Sie unsimplement a controller inside the main application class:

@SpringBootApplication(scanBasePackages = "com.example")
@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. Fazit

In diesem Artikel haben wir untersucht, wie Sie ein Projekt mit mehreren Modulen implementieren und konfigurieren und eine eigene Bibliothekjar mitSpring Boot erstellen.

Wie immer finden sich Codebeispiele inover on GitHub.