Как создать глобальные переменные в проекте Grails

Какая наилучшая практика создания переменной, доступной почти для всех классов в проекте Grails? Есть ли файл конфигурации, который я могу использовать для хранения этих данных (например, application.properties)?

Спасибо.

Ответ 1

Ваш лучший выбор - Config.groovy. Любой класс может получить доступ к ConfigurationHolder.getConfig(), который делает его глобальным, и вы даже можете иметь значения переменной, зависящие от среды.

someVar = "foo"

environments {
   production {
      grails.serverURL = "http://www.changeme.com"
      someOtherVar = 1000
   }
   development {
      grails.serverURL = "http://localhost:8080/${appName}"
      someOtherVar = 100
   }
   test {
      grails.serverURL = "http://localhost:8080/${appName}"
      someOtherVar = 0
   }
}

Ответ 2

С Grails 2.2

//In Config.groovy
myVar = '/My/Root/Images/Folder'

//In your Services/Controllers/etc..  
import grails.util.Holders
def grailsApplication = Holders.getGrailsApplication()

//access you variable
def myVar =  grailsApplication.config.myVar;