2010-04-14 39 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;