1. Обзор
В этом кратком руководстве мы покажем , как создать многомодульный проект с помощью Spring Boot .
Сначала мы создадим библиотечную банку, которая сама по себе не является приложением, а затем мы создадим приложение, которое использует нашу библиотеку.
Для ознакомления с 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-родительский в качестве родительского проекта, позаботившись о том, чтобы установить <Относительный путь/> в пустое значение , чтобы Maven разрешил родительский pom.xml из репозиториев:
org.springframework.boot spring-boot-starter-parent 2.2.6.RELEASE
Обратите внимание, что если у нас есть собственный родительский проект, мы можем вместо этого импортировать управление зависимостями в виде спецификации (спецификации) в <Управление зависимостями/> раздел pom.xml :
org.springframework.boot spring-boot-dependencies pom 2.4.0 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
В дополнение к весне Зависимость от стартера загрузки, мы включим нашу библиотеку jar , созданную в предыдущем разделе :
org.springframework.boot spring-boot-starter-web com.baeldung.example library ${project.version}
Наконец, мы используем плагин Spring Boot :
org.springframework.boot spring-boot-maven-plugin
Есть несколько удобных причин использовать плагин, упомянутый выше в этом месте.
Во-первых, он предоставляет встроенный распознаватель зависимостей, который устанавливает номер версии в соответствии с зависимостями Spring Boot .
Во-вторых, он ищет основной метод, который будет помечен как выполняемый класс.
Finally, and perhaps most importantly, it collects all the jars on the classpath and builds a single, исполняемых о-jar .
Теперь, когда все готово для написания нашего класса приложений и перехода прямо к делу, давайте реализуем контроллер внутри основного класса приложений :
@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. Заключение
В этой статье мы рассмотрели, как реализовать и настроить многомодульный проект и создать библиотеку jar самостоятельно с Spring Boot .
Как всегда, примеры кода можно найти на GitHub .