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.