如何在运行时获取我的Grails Config.groovy中的好东西?

时间:2008-10-13 17:36:32

标签: configuration grails runtime

在Config.groovy中我看到了:

// set per-environment serverURL stem for creating absolute links
environments {
    production {
        grails.serverURL = "http://www.changeme.com"
    }
}

在运行时访问该文件的正确方法是什么?

4 个答案:

答案 0 :(得分:74)

在更新版本的Grails中,不推荐使用ConfigurationHolder。

相反,您应该使用grailsApplication对象。

grailsApplication.config.grails.serverURL

如果在Controller或Service中,则使用grailsApplication对象的依赖注入。 e.g。

class MyController{
    def grailsApplication
    def myAction() {
        grailsApplication.config.grails.serverURL
    }

请参阅How to access Grails configuration in Grails 2.0?

答案 1 :(得分:31)

danb走在正确的轨道上。但是,如果你做了更好的导入,生活会变得更容易:

import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH
println CH.config.grails.serverURL

答案 2 :(得分:14)

这里是:

import org.codehaus.groovy.grails.commons.ConfigurationHolder
println ConfigurationHolder.config.grails.serverURL

或者,在控制器和标签中,显然这将起作用:

grailsApplication.config.grails.serverURL

我在BootStrap中需要它,所以选项1就是我需要的。

答案 3 :(得分:10)

正如一些评论中所提到的,另一个选项是Grails 2.0中添加的grails.utils.Holders类。我更喜欢这种方法,因为您可以在未配置依赖注入的类中使用它。

import grails.util.Holders

class Foo {
    def bar() {
        println(Holders.config.grails.serverURL)
    }
}