Багатомодульний проект із Spring Boot

1. Огляд

У цьому короткому посібнику ми покажемо, як створити мультимодульний проект за допомогою Spring Boot .

Спочатку ми побудуємо jar бібліотеки, яка не є самою програмою, а потім створимо програму, яка використовує нашу бібліотеку.

Щоб ознайомитись із Spring Boot , зверніться до цієї статті.

2. Налаштування

Щоб створити наш багатомодульний проект, давайте створимо простий модуль, використовуючи пакувальну упаковку pom, щоб об’єднати нашу бібліотеку та модулі програми у нашій конфігурації Maven:

com.baeldung parent-multi-module pom

Ми створимо два каталоги всередині нашого проекту, які розділять модуль програми від модуля jar бібліотеки .

Давайте оголосимо наші модулі в pom.xml :

 library application 

3. Бібліотечний Глек

Для нашого бібліотечного модуля ми використовуватимемо упаковку банок :

com.baledung.example library jar

Оскільки ми хочемо скористатися перевагами управління залежностями Spring Boot , ми будемо використовувати spring-boot-starter-parent як батьківський проект, дбаючи про встановленнядо порожнього значення, щоб Maven вирішив батьківський pom.xml зі сховищ:

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

Зверніть увагу, що якщо у нас є власний батьківський проект, ми можемо замість цього імпортувати управління залежностями як технічний документ (BOM) урозділ pom.xml :

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

Нарешті, початкові залежності будуть досить простими:

  org.springframework.boot spring-boot-starter  

У цьому модулі плагін Spring Boot не потрібний, оскільки основною його функцією є створення виконуваного über-jar , якого ми не хочемо і не потрібно для бібліотеки.

Після цього ми готові розробити сервісний компонент, який буде надаватися бібліотекою :

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

4. Проект заявки

Як і наш бібліотечний модуль, наш прикладний модуль використовуватиме упаковку банок :

com.baeldung.example application jar

І ми скористаємося керуванням залежностями Spring Boot, як і раніше:

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

На додаток до початкової залежності Spring Boot, ми включимо нашу банку бібліотеки, створену в попередньому розділі :

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

Нарешті, ми використаємо плагін Spring Boot :

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

Існує кілька зручних причин використовувати згаданий вище плагін у цьому місці.

По-перше, він надає вбудований вирішувач залежностей, який встановлює номер версії відповідно до залежностей Spring Boot .

По-друге, він шукає основний метод, який потрібно позначити як запущений клас.

Нарешті, і, мабуть, найголовніше, він збирає всі банки на шляху до класу і створює єдину, керовану über-банку .

Тепер, коли все готове до написання нашого класу додатків і переходу прямо до суті, давайте реалізуємо контролер всередині основного класу програми :

@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. Висновок

У цій статті ми дослідили, як реалізувати та налаштувати багатомодульний проект та самостійно створити банку бібліотеки за допомогою Spring Boot .

Як завжди, зразки коду можна знайти на GitHub.