Acesso a banco de dados com arquivo .properties
estou com dificuldades para tirar os dados da conexão com o banco do código groovy.
Por padrão, no Grails, as propriedades de conexão ficam em seu código fonte, em uma classe gerada a partir da classe DataSource.groovy.
Eu preciso criar, então, um arquivo .properties com os dados do DataSource.groovy para que quando eu tenha a necessidade, eu aponte para uma outra base com um ip que pode variar, e somente altere esse arquivo .properties.
Atualmente, eu sempre tenho que recompilar todo o projeto e fazer o deploy dele no container web. Ou enviar para outras pessoas que trabalham no mesmo projeto.
Quem puder ajudar posta ai por favor. =)
Felipe Juliani.
é possível externalizar as suas configurações. Nunca vi isto ser feito com o DataSource.groovy, mas você pode tentar ok?
No arquivo Config.groovy adicione um código como este abaixo incluindo o DataSource.groovy
grails.config.locations = [ "classpath:${appName}-config.properties",
"classpath:${appName}-config.groovy",
"file:${userHome}/.grails/${appName}-config.properties",
"file:${userHome}/.grails/${appName}-config.groovy"]
Tirei este exemplo do Grails User Guide. Mais específicamente, da seção 3.4 do capítulo sobre configurações
da uma lida neste link: <!-- m --><a class="postlink" href="http://grails.org/doc/latest/guide/3.%20Configuration.html#3.4%20Externalized%20Configuration">http://grails.org/doc/latest/guide/3.%2 ... figuration</a><!-- m -->
Então kicolobo,
eu já tinha conseguido criar essa ligação externa, tirando como exemplo, esse código que fica comentado no DataSource.groovy.
Fiz, simplesmente com essa linha de código no Config.groovy:
grails.config.locations = [ &quot;file:${userHome}/jdbc.properties&quot; ]
Porém, existe um problema que é questão de localização do arquivo que eu chamei de &quot;jdbc.properties&quot;.
Eu só consegui colocando-o no home do usuário, como exemplificado na linha de código em cima.
Não sei referenciar para um path da aplicação, deixando, dessa forma, o arquivo sempre junto a aplicação, independente de arvore de diretórios.
Pra tentar explicar melhor: o application.properties fica na raiz da aplicação, quando estamos desenvolvendo. Se você notar, ele está ali, logo em baixo da pasta raiz com o nome do projeto. Porém, quando geramos um war e fazemos deploy do mesmo, por exemplo no Tomcat, esse arquivo vai para a pasta &quot;WEB-INF/classes&quot; dentro desse container web.