Projet multi-module avec démarrage à ressort

Projet multi-module avec démarrage à ressort

1. Vue d'ensemble

Dans ce rapide didacticiel, nous allons montrerhow to create a multi-module project with Spring Boot.

Tout d'abord, nous allons créer un fichier jar de bibliothèque qui n'est pas une application en soi, puis nous allons créer une application qui utilise notre bibliothèque.

Pour une introduction àSpring Boot, veuillez vous référer àthis article.

2. Installer

Pour mettre en place notre projet multi-module, utilisonscreate a simple module using pom packaging to aggregate our library and application modules dans notre configuration Maven:

org.example
parent-multi-module
pom

Nous allons créer deux répertoires dans notre projet qui diviseront le module d'application du module de la bibliothèquejar.

Déclarons nos modules dans lespom.xml:


    library
    application

3. Pot de bibliothèque

Pour notre modulelibrary, nous utiliserons l'empaquetagejar:

com.baledung.example
library
jar

Comme nous voulonstake advantage of Spring Boot dependency management, nous utiliserons lespring-boot-starter-parent  comme projet parent, en prenant soin deset <relativePath/> to an empty value afin que Maven résout lespom.xml parents à partir des dépôts:


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

Notez queif we have our own parent project, we can instead import the dependency management as a Bill of Materials (BOM) dans la section<dependencyManagement/> despom.xml:


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

Enfin, les dépendances initiales vont être assez simples:


    
        org.springframework.boot
        spring-boot-starter
    

Dans ce module, lesSpring Boot plugin isn’t necessary because the main function of it is to create an executable*über-jar*, dont nous ne voulons pas et dont nous n’avons pas besoin pour une bibliothèque.

Après cela, nous sommes prêts àdevelop 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. Projet d'application

Comme notre modulelibrary, notre module d'application utilisera l'empaquetagejar:

com.example.example
application
jar

Et nous profiterons de la gestion des dépendances deSpring Boot comme auparavant:


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

En plus de la dépendance de démarrage Spring Boot, nous allonsinclude our library jar created in the previous section:


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

Enfin, nous allonsuse the Spring Boot plugin:


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

Il existe plusieurs raisons pratiques d'utiliser le plug-in mentionné ci-dessus à cet endroit.

Premièrement, il fournit un résolveur de dépendances intégré qui définit le numéro de version pour correspondre aux dépendancesSpring Boot.

Deuxièmement, il recherche la méthode principale à marquer en tant que classe exécutable.

Enfin et peut-être le plus important, il collecte tous lesjars sur lesclasspath et construit un seulüber-jar exécutable.

Maintenant que tout est prêt pour écrire notre classe d’application et pour aller droit au but, nous allonsimplement 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. Conclusion

Dans cet article, nous avons exploré comment implémenter et configurer un projet multi-module et créer une bibliothèquejar seule avecSpring Boot.

Comme toujours, des échantillons de code peuvent être trouvésover on GitHub.