2
respostas

Application.properties em multi modulos

Ola, como fica a questao do arquivo application.properties nas aplicacoes spring multi modules?

Eu precisei quebrar uma app spring web mvc para ter uma application com template engine e outra com rest api usando a mesma infra. Porem eu preciso ter apenas um thymeleaf que deixei no pacote de infra juntamente com application.properties com as configuracoes de datasource. mas assim a aplicacao quebra quando vou definir atributos via application.properties no modulo rest api e no web.

pelo que percebi preciso ter o arquivo com as informacoes de datasource duplicadas em ambas as aplicacoes.

dependencias como spring-security tambem ficam duplicadas? visto que na rest api vou implementar jwt e na web é cookie de sessao?

2 respostas

Oi Thiago,

Aqui tem um exemplo de aplicação Spring separada em módulos: https://github.com/rcaneppele/fj91-clean-architecture

Veja se consegue te dar uma luz.

Bons estudos!

Ola Bom dia. A minha divisao esta como seu exemplo do github, eu já ate havia dado uma estudada nele. A diferença é que no seu modulo de persistência, a configuração do datasource está fixa dentro da classe. No meu caso eu coloquei no application.properties.

É ai onde nasce o problema. Se so existir o arquivo do modulo rh-persistencia, funciona normalmente. Mas a partir do momento que você coloca um application.properties no rh-web, já ocorre erro, pois o framework não reconhece mais os dados de conexão com o banco, nao é feito merge ou herança dos arquivos. Ate ai tudo bem, em removo o arquivo de propriedades do rh-persistencia e deixo apenas no rh-web.

So que no meu caso, eu fiz um rh-api, vai precisar tambem de um application.properties. O que eu queria eliminar é o fato de ter a configuração de datasource em ambos.

Mas por enquanto vou manter da forma que está redundante mesmo, pois a outra solucao seria deixar a configuracao fixa dentro da classe como voce fez. E eu nao acho legal, pois o spring permite que crie uma pasta config e coloque esse arquivo lá dentro e faca ajustes nele sem precisar ficar gerando um jar novo.