Multimodulprojekt med fjedersko

1. Oversigt

I denne hurtige vejledning viser vi det hvordan man opretter et multimodulprojekt med Spring Boot.

Først bygger vi en bibliotekskrukke, der ikke er en applikation i sig selv, og derefter bygger vi en applikation, der bruger vores bibliotek.

For en introduktion til Spring Boothenvises til denne artikel.

2. Opsætning

Lad os konfigurere vores multimodulprojekt Opret et simpelt modul ved hjælp af pom emballage at samle vores bibliotek og applikationsmoduler i vores Maven-konfiguration:

com.baeldung forælder-multi-modul pom

Vi opretter to mapper inde i vores projekt, der deler applikationsmodulet fra biblioteket krukke modul.

Lad os erklære vores moduler i pom.xml:

 biblioteksapplikation 

3. Bibliotekskrukke

For vores bibliotek modul, vi bruger krukke emballage:

com.baledung.example bibliotek jar

Som vi vil udnytte Spring Boot afhængighedsstyring, vi bruger spring-boot-starter-parent som det overordnede projekt, der tager sig af sæt til en tom værdi så Maven vil løse forældrene pom.xml fra arkiverne:

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

Noter det hvis vi har vores eget overordnede projekt, kan vi i stedet importere afhængighedsstyring som en stykliste (BOM) i sektion af pom.xml:

   org.springframework.boot spring-boot-afhængigheder pom 2.2.6.RELEASE import 

Endelig vil de indledende afhængigheder være ret enkle:

  org.springframework.boot spring-boot-starter 

I dette modul er Spring Boot plugin er ikke nødvendigt, fordi hovedfunktionen ved det er at oprette en eksekverbar über-jar, som vi ikke ønsker og ikke har brug for et bibliotek.

Derefter er vi klar til udvikle en servicekomponent, der leveres af biblioteket:

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

4. Ansøgningsprojekt

Ligesom vores bibliotek modul, vil vores applikationsmodul bruge krukke emballage:

com.baeldung.example applikationsburk

Og vi drager fordel af Spring Boot afhængighedsstyring som før:

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

Ud over Spring Boot startafhængighed, vil vi inkluderer vores bibliotek krukke oprettet i det foregående afsnit:

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

Endelig skal vi brug Spring Boot plugin:

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

Der er flere praktiske grunde til at bruge ovennævnte plugin på dette sted.

For det første giver den en indbygget afhængighedsopløsning, der indstiller versionsnummeret til at matche Spring Boot afhængigheder.

For det andet søger den efter den vigtigste metode til at markere som en klasse, der kan køres.

Endelig og måske vigtigst, samler det alle krukker på den klassesti og bygger en enkelt, kan køres über-jar.

Nu hvor alt er klar til at skrive vores ansøgningsklasse og gå direkte til sagen, lad os implementere en controller inden for hovedapplikationsklassen:

@SpringBootApplication (scanBasePackages = "com.baeldung") @RestController offentlig klasse EvenOddApplication {privat EvenOddService evenOddService; // constructor @GetMapping ("/ validate /") public String isEvenOrOdd (@RequestParam ("number") Integer number) {return evenOddService.isEvenOrOdd (number); } offentlig statisk ugyldig hoved (String [] args) {SpringApplication.run (EvenOddApplication.class, args); }}

5. Konklusion

I denne artikel har vi undersøgt, hvordan man implementerer og konfigurerer et multimodulprojekt og bygger et bibliotek krukke alene med Spring Boot.

Som altid kan kodeeksempler findes på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found