Acesso a banco de dados com arquivo .properties
01/03/2010 00:00
0
Pessoal,

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. =)

Abraços,

Felipe Juliani.
Tags: Grails


0
Oi Felipe,

é 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 -->


0
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.
Eu gostaria que o meu jdbc.properties tivesse o mesmo comportamento...

Obrigado pela ajuda,

Felipe Juliani.
05/03/2010 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto