Project met meerdere modules met veerboot

1. Overzicht

In deze korte tutorial laten we het zien hoe u een project met meerdere modules kunt maken met Spring Boot.

Eerst bouwen we een bibliotheekpot die zelf geen applicatie is, en dan bouwen we een applicatie die onze bibliotheek gebruikt.

Voor een kennismaking met Spring Bootverwijzen wij u naar dit artikel.

2. Installatie

Laten we, om ons multi-moduleproject op te zetten maak een eenvoudige module met pom verpakking om onze bibliotheek en applicatiemodules samen te voegen in onze Maven-configuratie:

com.baeldung ouder-multi-module pom

We maken twee mappen in ons project die de applicatiemodule van de bibliotheek zullen scheiden pot module.

Laten we onze modules declareren in het pom.xml:

 bibliotheek applicatie 

3. Bibliotheekpot

Voor onze bibliotheek module, zullen we gebruiken pot verpakking:

com.baledung.example bibliotheek jar

Zoals we willen profiteren van Spring Boot afhankelijkheidsbeheer, gebruiken we de spring-boot-starter-parent als het moederproject, zorgzaam voor set naar een lege waarde zodat Maven de ouder zal oplossen pom.xml uit de repositories:

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

Let daar op als we ons eigen bovenliggende project hebben, kunnen we in plaats daarvan het afhankelijkheidsbeheer importeren als een stuklijst (BOM) in de sectie van de pom.xml:

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

Ten slotte zullen de aanvankelijke afhankelijkheden vrij eenvoudig zijn:

  org.springframework.boot spring-boot-starter 

In deze module is het Spring Boot plug-in is niet nodig omdat de belangrijkste functie ervan is om een ​​uitvoerbaar bestand te maken über-pot, die we niet willen en niet nodig hebben voor een bibliotheek.

Daarna zijn we er klaar voor ontwikkel een servicecomponent die wordt geleverd door de bibliotheek:

@Service openbare klasse EvenOddService {openbare tekenreeks isEvenOrOdd (geheel getal) {retournummer% 2 == 0? "Even": "Odd"; }}

4. Toepassingsproject

Net als onze bibliotheek module, onze applicatiemodule zal gebruiken pot verpakking:

com.baeldung.example toepassingspot

En daar zullen we van profiteren Spring Boot afhankelijkheidsbeheer zoals eerder:

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

Naast de afhankelijkheid van Spring Boot-starter, zullen we omvatten onze bibliotheek pot gemaakt in de vorige sectie:

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

Eindelijk zullen we gebruik de Spring Boot inpluggen:

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

Er zijn verschillende handige redenen om de hierboven genoemde plug-in op deze plek te gebruiken.

Ten eerste biedt het een ingebouwde afhankelijkheidsoplosser die het versienummer zo instelt dat het overeenkomt Spring Boot afhankelijkheden.

Ten tweede zoekt het naar de belangrijkste methode om te markeren als een uitvoerbare klasse.

Ten slotte en misschien wel het belangrijkste: het verzamelt alle potten op de klassenpad en bouwt een enkele, uitvoerbare über-pot.

Nu alles klaar is om onze applicatieklasse te schrijven en meteen ter zake te gaan, laten we implementeer een controller binnen de hoofdtoepassingsklasse:

@SpringBootApplication (scanBasePackages = "com.baeldung") @RestController openbare klasse EvenOddApplication {privé EvenOddService evenOddService; // constructor @GetMapping ("/ validate /") public String isEvenOrOdd (@RequestParam ("number") Geheel getal getal) {retourneer evenOddService.isEvenOrOdd (getal); } openbare statische leegte hoofd (String [] args) {SpringApplication.run (EvenOddApplication.class, args); }}

5. Conclusie

In dit artikel hebben we onderzocht hoe u een project met meerdere modules kunt implementeren en configureren en hoe u een bibliotheek kunt bouwen pot op zichzelf met Spring Boot.

Zoals altijd zijn codevoorbeelden te vinden op GitHub.