2010-04-14 65 views

回答

25

最好的選擇是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 
    } 
} 
+1

太棒了!只是測試它,並確實在工作。只需添加如何獲得'someVar'值的信息:String var = ConfigurationHolder.getConfig()。getProperty('someVar')。再次,非常感謝! – firnnauriel 2010-04-14 12:10:09

+8

在Groovy中,您可以使用別名導入「導入org.codehaus.groovy.grails.commons.ConfigurationHolder作爲CH」,然後以「CH.config.someVar」的身份訪問它「 – 2010-04-14 13:04:11

+0

」我今天試過,它說「ConfigurationHolder已棄用」我應該使用它還是有新的更好的方法? – Mikey 2012-03-05 18:00:44

4

使用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;