2010-04-14 10 views

risposta

25

La soluzione migliore è Config.groovy. Qualsiasi classe può accedere a ConfigurationHolder.getConfig() che lo rende globale e puoi persino avere valori specifici per l'ambiente della tua variabile.

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 
    } 
} 
+1

grande! appena testato e in effetti funziona. aggiungendo semplicemente le informazioni su come ottenere il valore 'someVar': String var = ConfigurationHolder.getConfig(). getProperty ('someVar'). di nuovo, grazie mille! – firnnauriel

+8

In Groovy è possibile utilizzare l'importazione con alias "import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH" e quindi accedervi come "CH.config.someVar" –

+0

Ho provato questo oggi e dice "ConfigurationHolder è deprecato" dovrei usarlo comunque o c'è un nuovo modo migliore? – Mikey

4

Con 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;