Grails: reading configuration at runtime

 

by Taras Matyashovsky

 

As far as You know some basic configuration in Your Grails application is located in Config.groovy (under grails-app/conf folder). Often it is very useful to access data from it at runtime. To do that You have to use org.codehaus.groovy.grails.commons.ConfigurationHolder. For example, let's read SMTP properties from one of the previous posts.

 

Config.groovy:

 

// Some simple SMTP configuration.

grails {

   mail {

      host = "smtp.gmail.com"

      port = 465

      username = " This e-mail address is being protected from spambots. You need JavaScript enabled to view it "

      password = "yourpassword"

      props = ["mail.smtp.auth":"true"]

   }

}

 

Some service, for instance Email service:

 

// Using import aliasing.

import org.codehaus.groovy.grails.commons.ConfigurationHolder 

as confHolder

 

class EmailService {

 

   def sendEmail() {

       // Reading property by name.

       def username = confHolder.config.grails.mail.username

   }

}

 

As You can see its very simple. In order to have access to Grails configuration from controllers or tags use grailsApplication: in our case grailsApplication.config.grails.mail.username. Enjoy! 

 
 
 

Add comment


Security code
Refresh