Мультимодульный проект с Spring Boot
1. обзор
В этом кратком руководстве мы покажемhow to create a multi-module project with Spring Boot.
Сначала мы создадим библиотеку jar, которая не является приложением, а затем создадим приложение, использующее нашу библиотеку.
Для ознакомления сSpring Boot см.this article.
2. Настроить
Чтобы настроить наш многомодульный проект, давайте используемcreate a simple module using pom packaging to aggregate our library and application modules в нашей конфигурации Maven:
org.example
parent-multi-module
pom
Мы создадим два каталога внутри нашего проекта, которые отделят модуль приложения от модуля библиотекиjar.
Давайте объявим наши модули вpom.xml:
library
application
3. Библиотека Jar
Для нашего модуляlibrary мы будем использовать упаковкуjar:
com.baledung.example
library
jar
Поскольку мы хотимtake advantage of Spring Boot dependency management, мы будем использоватьspring-boot-starter-parent как родительский проект, позаботившись оset <relativePath/> to an empty value, чтобы Maven разрешил родительскийpom.xml из репозиториев:
org.springframework.boot
spring-boot-starter-parent
2.0.2.RELEASE
Обратите внимание, чтоif we have our own parent project, we can instead import the dependency management as a Bill of Materials (BOM) в разделе<dependencyManagement/>pom.xml:
org.springframework.boot
spring-boot-dependencies
pom
2.0.2.RELEASE
import
Наконец, начальные зависимости будут довольно простыми:
org.springframework.boot
spring-boot-starter
В этом модулеSpring Boot plugin isn’t necessary because the main function of it is to create an executable*über-jar*,, которые нам не нужны и не нужны для библиотеки.
После этого мы готовы кdevelop a service component that will be provided by the library:
@Service
public class EvenOddService {
public String isEvenOrOdd(Integer number) {
return number % 2 == 0 ? "Even" : "Odd";
}
}
4. Проект приложения
Как и наш модульlibrary, наш модуль приложения будет использовать упаковкуjar:
com.example.example
application
jar
И мы воспользуемся преимуществом управления зависимостямиSpring Boot, как и раньше:
org.springframework.boot
spring-boot-starter-parent
2.0.2.RELEASE
В дополнение к начальной зависимости Spring Boot мы добавимinclude our library jar created in the previous section:
org.springframework.boot
spring-boot-starter-web
com.example.example
library
${project.version}
Наконец, мыuse the Spring Boot plugin:
org.springframework.boot
spring-boot-maven-plugin
Есть несколько удобных причин использовать плагин, упомянутый выше в этом месте.
Во-первых, он предоставляет встроенный преобразователь зависимостей, который устанавливает номер версии в соответствии с зависимостямиSpring Boot.
Во-вторых, он ищет метод main, чтобы пометить его как выполняемый класс.
Наконец, что, возможно, наиболее важно, он собирает всеjars наclasspath и строит один исполняемыйüber-jar.
Теперь, когда все готово для написания нашего класса приложения и сразу к делу, давайтеimplement a controller inside the main application class:
@SpringBootApplication(scanBasePackages = "com.example")
@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.
Как всегда, образцы кода можно найтиover on GitHub.