Projeto de múltiplos módulos com bota de mola
1. Visão geral
Neste tutorial rápido, mostraremoshow to create a multi-module project with Spring Boot.
Primeiro, vamos construir um jar de biblioteca que não é um aplicativo em si e, em seguida, vamos construir um aplicativo que usa nossa biblioteca.
Para obter uma introdução aSpring Boot, consultethis article.
2. Configuração
Para configurar nosso projeto multimódulo, vamoscreate a simple module using pom packaging to aggregate our library and application modules em nossa configuração Maven:
org.example
parent-multi-module
pom
Criaremos dois diretórios dentro de nosso projeto que dividirão o módulo do aplicativo do módulo da bibliotecajar.
Vamos declarar nossos módulos nopom.xml:
library
application
3. Library Jar
Para nosso módulolibrary, usaremos a embalagemjar:
com.baledung.example
library
jar
Como queremostake advantage of Spring Boot dependency management, usaremosspring-boot-starter-parent como o projeto pai, tomando cuidado comset <relativePath/> to an empty value para que o Maven resolva ospom.xml pai dos repositórios:
org.springframework.boot
spring-boot-starter-parent
2.0.2.RELEASE
Observe queif we have our own parent project, we can instead import the dependency management as a Bill of Materials (BOM) na seção<dependencyManagement/> depom.xml:
org.springframework.boot
spring-boot-dependencies
pom
2.0.2.RELEASE
import
Finalmente, as dependências iniciais serão bem simples:
org.springframework.boot
spring-boot-starter
Neste módulo, osSpring Boot plugin isn’t necessary because the main function of it is to create an executable*über-jar*, que não queremos e não precisamos para uma biblioteca.
Depois disso, estamos prontos paradevelop 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. Projeto de Aplicação
Assim como nosso módulolibrary, nosso módulo de aplicativo usará o pacotejar:
com.example.example
application
jar
E tiraremos vantagem do gerenciamento de dependência deSpring Boot como antes:
org.springframework.boot
spring-boot-starter-parent
2.0.2.RELEASE
Além da dependência inicial do Spring Boot, vamosinclude our library jar created in the previous section:
org.springframework.boot
spring-boot-starter-web
com.example.example
library
${project.version}
Finalmente, vamosuse the Spring Boot plugin:
org.springframework.boot
spring-boot-maven-plugin
Existem vários motivos convenientes para usar o plug-in mencionado acima neste local.
Primeiro, ele fornece um resolvedor de dependências integrado que define o número da versão para corresponder às dependências deSpring Boot.
Segundo, ele procura o método principal para sinalizar como uma classe executável.
Finalmente, e talvez o mais importante, ele coleta todos osjars emclasspathe cria um únicoüber-jar executável.
Agora que tudo está pronto para escrever nossa classe de aplicativo e ir direto ao ponto, vamosimplement 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. Conclusão
Neste artigo, exploramos como implementar e configurar um projeto multi-módulo e construir uma bibliotecajar por conta própria comSpring Boot.
Como sempre, as amostras de código podem ser encontradasover on GitHub.