Projet multi-module avec Spring Boot

1. Vue d'ensemble

Dans ce rapide tutoriel, nous montrerons comment créer un projet multi-module avec Spring Boot .

Tout d'abord, nous allons créer un fichier jar de bibliothèque qui n'est pas une application elle-même, puis nous allons créer une application qui utilise notre bibliothèque.

Pour une introduction à Spring Boot , veuillez consulter cet article.

2. Configuration

Pour mettre en place notre projet multi-module, créons un module simple en utilisant le packaging pom pour agréger notre bibliothèque et nos modules d'application dans notre configuration Maven:

com.baeldung parent-multi-module pom

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

Déclarons nos modules dans le pom.xml :

 library application 

3. Pot de bibliothèque

Pour notre module de bibliothèque , nous utiliserons un emballage en pot :

com.baledung.example library jar

Comme nous voulons tirer parti de la gestion des dépendances de Spring Boot , nous utiliserons le parent spring-boot-starter comme projet parent, en prenant soin de définirà une valeur vide afin que Maven résout le pom.xml parent à partir des référentiels:

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

Notez que si nous avons notre propre projet parent, nous pouvons à la place importer la gestion des dépendances sous forme de nomenclature (BOM) dans lesection du pom.xml :

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

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

  org.springframework.boot spring-boot-starter  

Dans ce module, le plugin Spring Boot n'est pas nécessaire car sa fonction principale est de créer un über-jar exécutable , dont nous ne voulons pas et dont nous n'avons pas besoin pour une bibliothèque.

Après cela, nous sommes prêts à développer un composant de service qui sera fourni par la bibliothèque :

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

4. Projet d'application

À l'instar de notre module de bibliothèque , notre module d'application utilisera le packaging de jar :

com.baeldung.example application jar

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

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

En plus de la dépendance de démarrage Spring Boot, nous inclurons notre jar de bibliothèque créé dans la section précédente :

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

Enfin, nous utiliserons le plugin Spring Boot :

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

Il y a plusieurs raisons pratiques d'utiliser le plugin mentionné ci-dessus à cet endroit.

Tout d'abord, il fournit un résolveur de dépendances intégré qui définit le numéro de version pour correspondre aux dépendances de Spring Boot .

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

Enfin et peut-être le plus important, il rassemble tous les jars sur le chemin de classe 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, implémentons un contrôleur dans la classe d'application principale :

@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. Conclusion

Dans cet article, nous avons exploré comment implémenter et configurer un projet multi-module et créer un fichier jar de bibliothèque seul avec Spring Boot .

Comme toujours, des exemples de code peuvent être trouvés sur GitHub.