Spring Boot em Vários Módulos / Localicação do "app... | Fórum | School of Net

Deseja poder participar de nosso fórum e tirar todas as suas dúvidas?
Clique aqui e assine nosso plano de acesso ilimitado. Saiba mais.

por Ezequiel

2 semanas, 3 dias atrás Ezequiel

Spring Boot em Vários Módulos / Localicação do "application.properties" / Maven

Recentemente minha aplicação de único módulo evoluiu para vários módulos para anteder a necessidade. Como tenho uma parte web (thymeleaf) e um outra aplicação (scheduler) que faz análise na mesma base de dados (MariaDB), fiz a seguinte modularização. -gestao-supermercado-api: contém o Service, Repository e Model e pasta com os úties. -gestao-supermercado-web: contém o Controller e o Thymeleaf e importa (maven) o gestao-supermercado-api -gestao-supermercado-scheduler: contém as rotinas (tarefas/tasks) e e importa gestao-supermercado-api Com alguns estudos pela internet e com exemplos nos links abaixo, deu certo a modularização. Todavia, a questão é o arquivo "application.properties", basendo em boa prática, qual é o melhor lugar para deixá-lo. O acesso ao banco de dados está nele. Se eu deixar no gestao-supermercado-api, não é preciso criá-lo no gestao-supermercado-web e no gestao-supermercado-scheduler. Testei isso e deu certo. Todavia, de acordo com o spring.io (texto abaixo), o recomendável é deixar em cada projeto dado como "aplicação", no caso da api se eu quiser testar uma Repository por exemplo, tenho deixar o "application.properties" no "src/test/resources". Achei isso meio estranho, pois tenho dois projetos como aplicação e acessão a mesma api, e em cima da explicação dada, tenho manter dois "application.properties" com conexões de banco. Essa questão realmente é assim ou nas últimas versões do Spring Boot posso deixar o "application.properties" somente na api (gestao-supermercado-api) e não corro risco de ter problema? ``` Minha atual distribuição do "applicatidon.properties", observe o "test" e "main" ├── gestao-supermercado-api │ ├── pom.xml │ └── src │ └── test │ └── resources │ └──application.properties │ ├── gestao-supermercado-web │ ├── pom.xml │ └── src │ └── main │ └── resources │ └──application.properties │ ├── gestao-supermercado-scheduler │ ├── pom.xml │ └── src │ └── main │ └── resources │ └──application.properties ``` https://spring.io/guides/gs/multi-module/ "We do not recommend putting application.properties in a library, because there might be a clash at runtime with the application that uses the library (only one application.properties is ever loaded from the classpath). You could put application.properties in the test classpath but not include it in the jar (for instance, by placing it in src/test/resources)." https://www.javatpoint.com/spring-boot-multi-module-project

4 Respostas