Multimodulprosjekt med fjærstøvel
1. Oversikt
I denne raske opplæringen viser vi hvordan lage et multimodulprosjekt med Vårstøvel.
Først bygger vi et bibliotekburk som ikke er et program i seg selv, og deretter bygger vi et program som bruker biblioteket vårt.
For en introduksjon til Vårstøvel, se denne artikkelen.
2. Oppsett
For å sette opp vårt multimodulprosjekt, la oss lage en enkel modul ved hjelp av pom-emballasje for å samle biblioteket og applikasjonsmodulene våre i vår Maven-konfigurasjon:
com.baeldung foreldre-multi-modul pom
Vi oppretter to kataloger i prosjektet vårt som vil dele applikasjonsmodulen fra biblioteket krukke modul.
La oss erklære modulene våre i pom.xml:
biblioteksapplikasjon
3. Library Jar
For vår bibliotek modul, vil vi bruke krukke emballasje:
com.baledung.example bibliotek jar
Som vi vil dra nytte av Vårstøvel avhengighetsstyring, vi bruker spring-boot-starter-parent som foreldreprosjekt, ta vare på sett til en tom verdi slik at Maven vil løse foreldrene pom.xml fra depotene:
org.springframework.boot spring-boot-starter-parent 2.2.6.RELEASE
Noter det hvis vi har vårt eget overordnede prosjekt, kan vi i stedet importere avhengighetsadministrasjonen som en stykliste (BOM) i delen av pom.xml:
org.springframework.boot spring-boot-dependencies pom 2.2.6.RELEASE import
Til slutt vil de første avhengighetene være ganske enkle:
org.springframework.boot spring-boot-starter
I denne modulen er Vårstøvel plugin er ikke nødvendig fordi hovedfunksjonen til den er å lage en kjørbar über-jar, som vi ikke vil ha og ikke trenger for et bibliotek.
Etter det er vi klare til utvikle en tjenestekomponent som vil bli levert av biblioteket:
@Service offentlig klasse EvenOddService {public String isEvenOrOdd (Integer number) {return number% 2 == 0? "Even": "Odd"; }}
4. Søknadsprosjekt
Som vår bibliotek modul, vår applikasjonsmodul vil bruke krukke emballasje:
com.baeldung.example applikasjonsburk
Og vi vil dra nytte av det Vårstøvel avhengighetsstyring som før:
org.springframework.boot spring-boot-starter-parent 2.2.6.RELEASE
I tillegg til våravhengighetsavhengighet, vil vi inkluderer biblioteket vårt krukke opprettet i forrige seksjon:
org.springframework.boot spring-boot-starter-web com.baeldung.example library $ {project.version}
Til slutt vil vi bruke Vårstøvel plugg inn:
org.springframework.boot spring-boot-maven-plugin
Det er flere praktiske grunner til å bruke plugin som er nevnt ovenfor på dette stedet.
For det første gir den en innebygd avhengighetsoppløsning som setter versjonsnummeret til å matche Vårstøvel avhengigheter.
For det andre søker den etter hovedmetoden for å flagge som en kjørbar klasse.
Endelig og kanskje viktigst, samler den alle krukker på klassesti og bygger en enkelt, kan kjøres über-jar.
Nå som alt er klart til å skrive søknadsklassen vår og gå rett til poenget, la oss implementere en kontroller i hovedapplikasjonsklassen:
@SpringBootApplication (scanBasePackages = "com.baeldung") @RestController offentlig klasse 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. Konklusjon
I denne artikkelen har vi undersøkt hvordan vi kan implementere og konfigurere et multimodulprosjekt og bygge et bibliotek krukke på egenhånd med Vårstøvel.
Som alltid kan kodeeksempler bli funnet på GitHub.